diff --git a/composer.json b/composer.json
index 25ef517..07d31f8 100644
--- a/composer.json
+++ b/composer.json
@@ -32,7 +32,7 @@
}
},
"require": {
- "php": "^7.4 | ^8.0"
+ "php": "^8.1"
},
"prefer-stable": true,
"archive": {
diff --git a/src/Decoder.php b/src/Decoder.php
index 9b9dfa5..28e4d7f 100644
--- a/src/Decoder.php
+++ b/src/Decoder.php
@@ -18,19 +18,15 @@ interface Decoder
* @psalm-param Context $context
*
* @psalm-return Validation
- *
- * @param mixed $i
*/
- public function validate($i, Context $context): Validation;
+ public function validate(mixed $i, Context $context): Validation;
/**
* @psalm-param I $i
*
* @psalm-return Validation
- *
- * @param mixed $i
*/
- public function decode($i): Validation;
+ public function decode(mixed $i): Validation;
public function getName(): string;
}
diff --git a/src/Decoders.php b/src/Decoders.php
index d0d41ca..f9e4005 100644
--- a/src/Decoders.php
+++ b/src/Decoders.php
@@ -203,10 +203,8 @@ public static function transformValidationSuccess(callable $f, Decoder $da): Dec
* @psalm-param T $l
*
* @psalm-return Decoder
- *
- * @param mixed $l
*/
- public static function literal($l): Decoder
+ public static function literal(mixed $l): Decoder
{
return new LiteralDecoder($l);
}
diff --git a/src/Internal/Arrays/ListOfDecoder.php b/src/Internal/Arrays/ListOfDecoder.php
index 94e31b6..d3045c2 100644
--- a/src/Internal/Arrays/ListOfDecoder.php
+++ b/src/Internal/Arrays/ListOfDecoder.php
@@ -22,15 +22,14 @@
*/
final class ListOfDecoder implements Decoder
{
- /** @var Decoder */
- private \Facile\PhpCodec\Decoder $elementDecoder;
-
/**
* @psalm-param Decoder $elementDecoder
*/
- public function __construct(Decoder $elementDecoder)
+ public function __construct(
+ /** @var Decoder */
+ private readonly \Facile\PhpCodec\Decoder $elementDecoder
+ )
{
- $this->elementDecoder = $elementDecoder;
}
public function validate($i, Context $context): Validation
diff --git a/src/Internal/Combinators/ArrayPropsDecoder.php b/src/Internal/Combinators/ArrayPropsDecoder.php
index 015c776..076f99e 100644
--- a/src/Internal/Combinators/ArrayPropsDecoder.php
+++ b/src/Internal/Combinators/ArrayPropsDecoder.php
@@ -24,15 +24,11 @@
*/
final class ArrayPropsDecoder implements Decoder
{
- /** @var PD */
- private array $props;
-
/**
* @psalm-param PD $props
*/
- public function __construct(array $props)
+ public function __construct(private readonly array $props)
{
- $this->props = $props;
}
public function validate($i, Context $context): Validation
diff --git a/src/Internal/Combinators/ComposeDecoder.php b/src/Internal/Combinators/ComposeDecoder.php
index 06cfbde..73c5db6 100644
--- a/src/Internal/Combinators/ComposeDecoder.php
+++ b/src/Internal/Combinators/ComposeDecoder.php
@@ -20,21 +20,17 @@
*/
final class ComposeDecoder implements Decoder
{
- /** @var Decoder */
- private \Facile\PhpCodec\Decoder $db;
- /** @var Decoder */
- private \Facile\PhpCodec\Decoder $da;
-
/**
* @psalm-param Decoder $db
* @psalm-param Decoder $da
*/
public function __construct(
- Decoder $db,
- Decoder $da
- ) {
- $this->db = $db;
- $this->da = $da;
+ /** @var Decoder */
+ private readonly \Facile\PhpCodec\Decoder $db,
+ /** @var Decoder */
+ private readonly \Facile\PhpCodec\Decoder $da
+ )
+ {
}
/**
@@ -53,7 +49,7 @@ public function validate($i, Context $context): Validation
*
* @param mixed $aValue
*/
- fn($aValue): Validation => $this->db->validate($aValue, $context),
+ fn(mixed $aValue): Validation => $this->db->validate($aValue, $context),
$this->da->validate($i, $context)
);
}
diff --git a/src/Internal/Combinators/IntersectionDecoder.php b/src/Internal/Combinators/IntersectionDecoder.php
index 53cfe01..3737156 100644
--- a/src/Internal/Combinators/IntersectionDecoder.php
+++ b/src/Internal/Combinators/IntersectionDecoder.php
@@ -24,19 +24,17 @@
*/
final class IntersectionDecoder implements Decoder
{
- /** @var Decoder */
- private \Facile\PhpCodec\Decoder $a;
- /** @var Decoder */
- private \Facile\PhpCodec\Decoder $b;
-
/**
* @psalm-param Decoder $a
* @psalm-param Decoder $b
*/
- public function __construct(Decoder $a, Decoder $b)
+ public function __construct(
+ /** @var Decoder */
+ private readonly \Facile\PhpCodec\Decoder $a,
+ /** @var Decoder */
+ private readonly \Facile\PhpCodec\Decoder $b
+ )
{
- $this->a = $a;
- $this->b = $b;
}
public function validate($i, Context $context): Validation
@@ -97,12 +95,10 @@ public function getName(): string
*
* @psalm-return T1&T2
*
- * @param mixed $a
- * @param mixed $b
*
* @return array|object
*/
- private static function intersectResults($a, $b)
+ private static function intersectResults(mixed $a, mixed $b)
{
if (\is_array($a) && \is_array($b)) {
/** @var T1&T2 */
diff --git a/src/Internal/Combinators/LiteralDecoder.php b/src/Internal/Combinators/LiteralDecoder.php
index 0fe5d8b..6e9e604 100644
--- a/src/Internal/Combinators/LiteralDecoder.php
+++ b/src/Internal/Combinators/LiteralDecoder.php
@@ -30,10 +30,8 @@ final class LiteralDecoder implements Decoder
/**
* @psalm-param T $literal
- *
- * @param mixed $literal
*/
- public function __construct($literal)
+ public function __construct(mixed $literal)
{
$this->literal = $literal;
}
@@ -59,10 +57,8 @@ public function getName(): string
/**
* @psalm-param literable $x
- *
- * @param mixed $x
*/
- private static function literalName($x): string
+ private static function literalName(mixed $x): string
{
if (\is_string($x)) {
return "'{$x}'";
diff --git a/src/Internal/Combinators/MapDecoder.php b/src/Internal/Combinators/MapDecoder.php
index 33689c6..6bc7fe8 100644
--- a/src/Internal/Combinators/MapDecoder.php
+++ b/src/Internal/Combinators/MapDecoder.php
@@ -21,15 +21,13 @@ final class MapDecoder implements Decoder
{
/** @var callable(A):B */
private $f;
- private string $name;
/**
* @psalm-param callable(A):B $f
*/
- public function __construct(callable $f, string $name = 'map')
+ public function __construct(callable $f, private readonly string $name = 'map')
{
$this->f = $f;
- $this->name = $name;
}
public function validate($i, Context $context): Validation
diff --git a/src/Internal/Combinators/UnionDecoder.php b/src/Internal/Combinators/UnionDecoder.php
index 05d8f9a..4f8ac7a 100644
--- a/src/Internal/Combinators/UnionDecoder.php
+++ b/src/Internal/Combinators/UnionDecoder.php
@@ -23,24 +23,18 @@
*/
final class UnionDecoder implements Decoder
{
- /** @var Decoder */
- private \Facile\PhpCodec\Decoder $a;
- /** @var Decoder */
- private \Facile\PhpCodec\Decoder $b;
- private int $indexBegin;
-
/**
* @psalm-param Decoder $a
* @psalm-param Decoder $b
*/
public function __construct(
- Decoder $a,
- Decoder $b,
- int $indexBegin = 0
- ) {
- $this->a = $a;
- $this->b = $b;
- $this->indexBegin = $indexBegin;
+ /** @var Decoder */
+ private readonly \Facile\PhpCodec\Decoder $a,
+ /** @var Decoder */
+ private readonly \Facile\PhpCodec\Decoder $b,
+ private readonly int $indexBegin = 0
+ )
+ {
}
public function validate($i, Context $context): Validation
diff --git a/src/Internal/FunctionUtils.php b/src/Internal/FunctionUtils.php
index fb7d76c..c428fa0 100644
--- a/src/Internal/FunctionUtils.php
+++ b/src/Internal/FunctionUtils.php
@@ -43,10 +43,8 @@ public static function nameFromProps(array $props): string
* @psalm-param I $input
*
* @psalm-return Validation
- *
- * @param mixed $input
*/
- public static function standardDecode(Decoder $decoder, $input): Validation
+ public static function standardDecode(Decoder $decoder, mixed $input): Validation
{
return $decoder->validate(
$input,
@@ -69,10 +67,7 @@ public static function destructureIn(callable $f): callable
return fn(array $params) => $f(...$params);
}
- /**
- * @param mixed $x
- */
- public static function strigify($x): string
+ public static function strigify(mixed $x): string
{
if ($x === null) {
return 'null';
diff --git a/src/Internal/Primitives/UndefinedDecoder.php b/src/Internal/Primitives/UndefinedDecoder.php
index 3c9dd6b..3355572 100644
--- a/src/Internal/Primitives/UndefinedDecoder.php
+++ b/src/Internal/Primitives/UndefinedDecoder.php
@@ -19,17 +19,11 @@
*/
final class UndefinedDecoder implements Decoder
{
- /** @var U */
- private $default;
-
/**
* @psalm-param U $default
- *
- * @param mixed $default
*/
- public function __construct($default)
+ public function __construct(private readonly mixed $default)
{
- $this->default = $default;
}
public function validate($i, Context $context): Validation
diff --git a/src/Internal/Undefined.php b/src/Internal/Undefined.php
index cf10c3e..4314a31 100644
--- a/src/Internal/Undefined.php
+++ b/src/Internal/Undefined.php
@@ -4,7 +4,7 @@
namespace Facile\PhpCodec\Internal;
-final class Undefined
+final class Undefined implements \Stringable
{
public function __toString(): string
{
diff --git a/src/Internal/Useful/DateTimeFromStringDecoder.php b/src/Internal/Useful/DateTimeFromStringDecoder.php
index 525a108..337a78d 100644
--- a/src/Internal/Useful/DateTimeFromStringDecoder.php
+++ b/src/Internal/Useful/DateTimeFromStringDecoder.php
@@ -16,14 +16,13 @@
*/
final class DateTimeFromStringDecoder implements Decoder
{
- /**
- * @psalm-readonly
- */
- private string $format;
-
- public function __construct(string $format = \DATE_ATOM)
+ public function __construct(
+ /**
+ * @psalm-readonly
+ */
+ private readonly string $format = \DATE_ATOM
+ )
{
- $this->format = $format;
}
public function validate($i, Context $context): Validation
diff --git a/src/Internal/Useful/RegexDecoder.php b/src/Internal/Useful/RegexDecoder.php
index 1649f4c..2674264 100644
--- a/src/Internal/Useful/RegexDecoder.php
+++ b/src/Internal/Useful/RegexDecoder.php
@@ -16,11 +16,8 @@
*/
final class RegexDecoder implements Decoder
{
- private string $regex;
-
- public function __construct(string $regex)
+ public function __construct(private readonly string $regex)
{
- $this->regex = $regex;
}
public function validate($i, Context $context): Validation
diff --git a/src/Internal/Useful/StringMatchingRegexDecoder.php b/src/Internal/Useful/StringMatchingRegexDecoder.php
index 733bc34..f90a826 100644
--- a/src/Internal/Useful/StringMatchingRegexDecoder.php
+++ b/src/Internal/Useful/StringMatchingRegexDecoder.php
@@ -16,11 +16,8 @@
*/
final class StringMatchingRegexDecoder implements Decoder
{
- private string $regex;
-
- public function __construct(string $regex)
+ public function __construct(private readonly string $regex)
{
- $this->regex = $regex;
}
public function validate($i, Context $context): Validation
diff --git a/src/Reporters/PathReporter.php b/src/Reporters/PathReporter.php
index 77d2059..16c5558 100644
--- a/src/Reporters/PathReporter.php
+++ b/src/Reporters/PathReporter.php
@@ -27,7 +27,7 @@ public function report(Validation $validation): array
{
return Validation::fold(
fn(array $errors): array => \array_map(
- [self::class, 'getMessage'],
+ self::getMessage(...),
$errors
),
fn(): array => ['No errors!'],
diff --git a/src/Reporters/SimplePathReporter.php b/src/Reporters/SimplePathReporter.php
index aa1dcf8..f4bd78a 100644
--- a/src/Reporters/SimplePathReporter.php
+++ b/src/Reporters/SimplePathReporter.php
@@ -23,7 +23,7 @@ public function report(Validation $validation): array
{
return Validation::fold(
static fn(array $errors): array => array_map(
- [self::class, 'getMessage'],
+ self::getMessage(...),
$errors
),
static fn(): array => ['No errors'],
diff --git a/src/Utils/ConcreteDecoder.php b/src/Utils/ConcreteDecoder.php
index d33a6e6..d218541 100644
--- a/src/Utils/ConcreteDecoder.php
+++ b/src/Utils/ConcreteDecoder.php
@@ -19,17 +19,15 @@ final class ConcreteDecoder implements Decoder
{
/** @var callable(I, Context):Validation */
private $validateFunc;
- private string $name;
/**
* @psalm-param callable(I, Context):Validation $validate
*/
public function __construct(
callable $validate,
- string $name
+ private readonly string $name
) {
$this->validateFunc = $validate;
- $this->name = $name;
}
public function validate($i, Context $context): Validation
diff --git a/src/Validation/Context.php b/src/Validation/Context.php
index 6ccdb9b..caf071d 100644
--- a/src/Validation/Context.php
+++ b/src/Validation/Context.php
@@ -11,18 +11,16 @@ final class Context implements \Iterator
/** @var ContextEntry[] */
private array $entries;
private int $currentIndex = 0;
- private \Facile\PhpCodec\Decoder $decoder;
/**
* @psalm-param Decoder $decoder
* @psalm-param ContextEntry ...$entries
*/
public function __construct(
- Decoder $decoder,
+ private readonly \Facile\PhpCodec\Decoder $decoder,
ContextEntry ...$entries
) {
$this->entries = $entries;
- $this->decoder = $decoder;
}
public function appendEntries(ContextEntry ...$entries): self
diff --git a/src/Validation/ContextEntry.php b/src/Validation/ContextEntry.php
index de8296c..975d58b 100644
--- a/src/Validation/ContextEntry.php
+++ b/src/Validation/ContextEntry.php
@@ -8,26 +8,13 @@
final class ContextEntry
{
- private string $key;
- private \Facile\PhpCodec\Decoder $decoder;
- /** @var mixed */
- private $actual;
-
/**
* @psalm-param string $key
* @psalm-param Decoder $decoder
* @psalm-param mixed $actual
- *
- * @param mixed $actual
*/
- public function __construct(
- string $key,
- Decoder $decoder,
- $actual
- ) {
- $this->key = $key;
- $this->decoder = $decoder;
- $this->actual = $actual;
+ public function __construct(private readonly string $key, private readonly \Facile\PhpCodec\Decoder $decoder, private readonly mixed $actual)
+ {
}
public function getKey(): string
diff --git a/src/Validation/ListOfValidation.php b/src/Validation/ListOfValidation.php
index 38bef12..006689c 100644
--- a/src/Validation/ListOfValidation.php
+++ b/src/Validation/ListOfValidation.php
@@ -85,7 +85,7 @@ function (array $es) use (&$errors): void {
*
* @param mixed $x
*/
- function ($x) use ($k, &$results): void {
+ function (mixed $x) use ($k, &$results): void {
/** @var K $k */
/** @var array $results */
$results[$k] = $x;
diff --git a/src/Validation/VError.php b/src/Validation/VError.php
index d2660cd..554c9ff 100644
--- a/src/Validation/VError.php
+++ b/src/Validation/VError.php
@@ -6,26 +6,13 @@
final class VError
{
- /** @var mixed */
- private $value;
- private \Facile\PhpCodec\Validation\Context $context;
- private ?string $message = null;
-
/**
* @psalm-param mixed $value
* @psalm-param Context $context
* @psalm-param string|null $message
- *
- * @param mixed $value
*/
- public function __construct(
- $value,
- Context $context,
- ?string $message = null
- ) {
- $this->value = $value;
- $this->context = $context;
- $this->message = $message;
+ public function __construct(private readonly mixed $value, private readonly \Facile\PhpCodec\Validation\Context $context, private readonly ?string $message = null)
+ {
}
/**
diff --git a/src/Validation/Validation.php b/src/Validation/Validation.php
index 965cf44..ae6436f 100644
--- a/src/Validation/Validation.php
+++ b/src/Validation/Validation.php
@@ -15,10 +15,8 @@ abstract class Validation
* @psalm-param T $a
*
* @psalm-return ValidationSuccess
- *
- * @param mixed $a
*/
- public static function success($a): self
+ public static function success(mixed $a): self
{
return new ValidationSuccess($a);
}
@@ -45,10 +43,8 @@ public static function failures(array $errors): self
* @psalm-param string|null $message
*
* @psalm-return ValidationFailures
- *
- * @param mixed $value
*/
- public static function failure($value, Context $context, ?string $message = null): self
+ public static function failure(mixed $value, Context $context, ?string $message = null): self
{
return self::failures(
[new VError($value, $context, $message)]
diff --git a/src/Validation/ValidationFailures.php b/src/Validation/ValidationFailures.php
index a28ae54..eb97e25 100644
--- a/src/Validation/ValidationFailures.php
+++ b/src/Validation/ValidationFailures.php
@@ -11,17 +11,13 @@
*/
final class ValidationFailures extends Validation
{
- /** @var list */
- private array $errors;
-
/**
* @psalm-param list $errors
*
* @param VError[] $errors
*/
- public function __construct(array $errors)
+ public function __construct(private readonly array $errors)
{
- $this->errors = $errors;
}
/**
diff --git a/src/Validation/ValidationSuccess.php b/src/Validation/ValidationSuccess.php
index 8b2d1ac..9a8fa1a 100644
--- a/src/Validation/ValidationSuccess.php
+++ b/src/Validation/ValidationSuccess.php
@@ -11,17 +11,11 @@
*/
final class ValidationSuccess extends Validation
{
- /** @var A */
- private $value;
-
/**
* @psalm-param A $a
- *
- * @param mixed $a
*/
- public function __construct($a)
+ public function __construct(private readonly mixed $value)
{
- $this->value = $a;
}
/**
diff --git a/tests/examples/DecodeApiResponse/Coordinates.php b/tests/examples/DecodeApiResponse/Coordinates.php
index eff6c6e..ecaa718 100644
--- a/tests/examples/DecodeApiResponse/Coordinates.php
+++ b/tests/examples/DecodeApiResponse/Coordinates.php
@@ -9,13 +9,8 @@
*/
class Coordinates
{
- private float $longitude;
- private float $latitude;
-
- public function __construct(float $longitude, float $latitude)
+ public function __construct(private readonly float $longitude, private readonly float $latitude)
{
- $this->longitude = $longitude;
- $this->latitude = $latitude;
}
public function getLatitude(): float
diff --git a/tests/examples/DecodeApiResponse/OpenWeatherResponse.php b/tests/examples/DecodeApiResponse/OpenWeatherResponse.php
index ac48f6c..06056ec 100644
--- a/tests/examples/DecodeApiResponse/OpenWeatherResponse.php
+++ b/tests/examples/DecodeApiResponse/OpenWeatherResponse.php
@@ -9,18 +9,8 @@
*/
class OpenWeatherResponse
{
- private \Examples\Facile\PhpCodec\DecodeApiResponse\Coordinates $coordinates;
- private array $weather;
- private \Examples\Facile\PhpCodec\DecodeApiResponse\Sys $sys;
-
- public function __construct(
- \Examples\Facile\PhpCodec\DecodeApiResponse\Coordinates $coordinates,
- array $weathers,
- Sys $sys
- ) {
- $this->coordinates = $coordinates;
- $this->weather = $weathers;
- $this->sys = $sys;
+ public function __construct(private readonly \Examples\Facile\PhpCodec\DecodeApiResponse\Coordinates $coordinates, private readonly array $weather, private readonly \Examples\Facile\PhpCodec\DecodeApiResponse\Sys $sys)
+ {
}
public function getCoordinates(): \Examples\Facile\PhpCodec\DecodeApiResponse\Coordinates
diff --git a/tests/examples/DecodeApiResponse/Sys.php b/tests/examples/DecodeApiResponse/Sys.php
index 4c83ba6..b0bb965 100644
--- a/tests/examples/DecodeApiResponse/Sys.php
+++ b/tests/examples/DecodeApiResponse/Sys.php
@@ -9,15 +9,8 @@
*/
class Sys
{
- private string $country;
- private \DateTimeInterface $sunrise;
- private \DateTimeInterface $sunset;
-
- public function __construct(string $country, \DateTimeInterface $sunrise, \DateTimeInterface $sunset)
+ public function __construct(private readonly string $country, private readonly \DateTimeInterface $sunrise, private readonly \DateTimeInterface $sunset)
{
- $this->country = $country;
- $this->sunrise = $sunrise;
- $this->sunset = $sunset;
}
public function getCountry(): string
diff --git a/tests/examples/DecodeApiResponse/Weather.php b/tests/examples/DecodeApiResponse/Weather.php
index 42b902e..e44798c 100644
--- a/tests/examples/DecodeApiResponse/Weather.php
+++ b/tests/examples/DecodeApiResponse/Weather.php
@@ -9,15 +9,8 @@
*/
class Weather
{
- private int $id;
- private string $main;
- private string $description;
-
- public function __construct(int $id, string $main, string $description)
+ public function __construct(private readonly int $id, private readonly string $main, private readonly string $description)
{
- $this->id = $id;
- $this->main = $main;
- $this->description = $description;
}
public function getId(): int
diff --git a/tests/examples/DecodePartialPropertiesTest.php b/tests/examples/DecodePartialPropertiesTest.php
index d63886c..741c2b0 100644
--- a/tests/examples/DecodePartialPropertiesTest.php
+++ b/tests/examples/DecodePartialPropertiesTest.php
@@ -35,15 +35,8 @@ public function test(): void
class A
{
- private string $foo;
- private int $bar;
-
- public function __construct(
- string $foo,
- int $bar
- ) {
- $this->foo = $foo;
- $this->bar = $bar;
+ public function __construct(private readonly string $foo, private readonly int $bar)
+ {
}
public function getFoo(): string
diff --git a/tests/examples/DecoderForSumType/A.php b/tests/examples/DecoderForSumType/A.php
index 36570fd..b5e3f9c 100644
--- a/tests/examples/DecoderForSumType/A.php
+++ b/tests/examples/DecoderForSumType/A.php
@@ -12,15 +12,8 @@ final class A extends P
public const SUB_foo = 'foo';
public const SUB_bar = 'bar';
- private string $subType;
- private int $propertyA;
- private string $propertyB;
-
- public function __construct(string $subType, int $propertyA, string $propertyB)
+ public function __construct(private readonly string $subType, private readonly int $propertyA, private readonly string $propertyB)
{
- $this->subType = $subType;
- $this->propertyA = $propertyA;
- $this->propertyB = $propertyB;
}
public function getType(): string
diff --git a/tests/examples/DecoderForSumType/B.php b/tests/examples/DecoderForSumType/B.php
index 38c9025..e842b5f 100644
--- a/tests/examples/DecoderForSumType/B.php
+++ b/tests/examples/DecoderForSumType/B.php
@@ -13,15 +13,8 @@ final class B extends P
public const CASE_B2 = 2;
public const CASE_B3 = 3;
- private int $case;
- private float $amount;
- private bool $flag;
-
- public function __construct(int $case, float $amount, bool $flag)
+ public function __construct(private readonly int $case, private readonly float $amount, private readonly bool $flag)
{
- $this->case = $case;
- $this->amount = $amount;
- $this->flag = $flag;
}
public function getType(): string
diff --git a/tests/examples/ParseCsv/City.php b/tests/examples/ParseCsv/City.php
index c5a90e9..914d00f 100644
--- a/tests/examples/ParseCsv/City.php
+++ b/tests/examples/ParseCsv/City.php
@@ -6,18 +6,8 @@
class City
{
- private int $id;
- private string $name;
- private string $italianLandRegistryCode;
-
- public function __construct(
- int $id,
- string $name,
- string $italianLandRegistryCode
- ) {
- $this->id = $id;
- $this->name = $name;
- $this->italianLandRegistryCode = $italianLandRegistryCode;
+ public function __construct(private readonly int $id, private readonly string $name, private readonly string $italianLandRegistryCode)
+ {
}
public function getId(): int
diff --git a/tests/unit/DecodersTest.php b/tests/unit/DecodersTest.php
index c288c8a..a302ba9 100644
--- a/tests/unit/DecodersTest.php
+++ b/tests/unit/DecodersTest.php
@@ -39,11 +39,8 @@ public function testMap(): void
class A
{
- private int $v;
-
- public function __construct(int $v)
+ public function __construct(private readonly int $v)
{
- $this->v = $v;
}
public function getValue(): int
diff --git a/tests/unit/Internal/Useful/StringMatchingRegexDecoderTest.php b/tests/unit/Internal/Useful/StringMatchingRegexDecoderTest.php
index ef8e6b1..7091890 100644
--- a/tests/unit/Internal/Useful/StringMatchingRegexDecoderTest.php
+++ b/tests/unit/Internal/Useful/StringMatchingRegexDecoderTest.php
@@ -46,7 +46,7 @@ public function testDecode(): void
Generators::elements(['a', 'b', 'c', 'd', 'e', 'f', 'g'])
)
)
- ->then(FunctionUtils::destructureIn(function (int $x, string $a) {
+ ->then(FunctionUtils::destructureIn(function (int $x, string $a): void {
$in = \sprintf('%d%s', $x, $a);
self::asserSuccessSameTo(
$in,
diff --git a/tests/unit/Reporters/ReportersTest.php b/tests/unit/Reporters/ReportersTest.php
index 286b955..0665ee8 100644
--- a/tests/unit/Reporters/ReportersTest.php
+++ b/tests/unit/Reporters/ReportersTest.php
@@ -48,13 +48,11 @@ public function provideReportRootErrors(): array
}
/**
- * @param mixed $value
- *
* @dataProvider provideReportRootClassError
*/
public function testReportRootClassError(
Reporter $reporter,
- $value,
+ mixed $value,
array $expected
): void {
$decoder = Decoders::classFromArrayPropsDecoder(
@@ -186,11 +184,9 @@ function (array $value) use ($simplePathReporter, $pathReporter, $decoder): void
}
/**
- * @param mixed $value
- *
* @dataProvider provideNestedArrayPropsReport
*/
- public function testNestedArrayPropsReport(Reporter $reporter, $value, array $expected): void
+ public function testNestedArrayPropsReport(Reporter $reporter, mixed $value, array $expected): void
{
$decoder = Decoders::arrayProps([
'a' => Decoders::arrayProps([
@@ -258,11 +254,9 @@ public function provideNestedArrayPropsReport(): array
}
/**
- * @param mixed $value
- *
* @dataProvider provideListOfClassReport
*/
- public function testListOfClassReport(Reporter $reporter, $value, array $expected): void
+ public function testListOfClassReport(Reporter $reporter, mixed $value, array $expected): void
{
$decoder = Decoders::listOf(
Decoders::classFromArrayPropsDecoder(
@@ -347,11 +341,9 @@ public function provideListOfClassReport(): array
}
/**
- * @param mixed $value
- *
* @dataProvider provideUnionReport
*/
- public function testUnionReport(Reporter $reporter, $value, array $expected): void
+ public function testUnionReport(Reporter $reporter, mixed $value, array $expected): void
{
$decoder = Decoders::arrayProps([
'a' => Decoders::union(
@@ -435,13 +427,11 @@ public function provideUnionReport(): array
}
/**
- * @param mixed $value
- *
* @dataProvider provideIntersectionReport
*/
public function testIntersectionReport(
Reporter $reporter,
- $value,
+ mixed $value,
array $expected
): void {
$d = Decoders::intersection(