diff --git a/src/SignatureAssertionUtil.php b/src/SignatureAssertionUtil.php index 9efb028031faa1f1cca1b5f2ea41597ad765a25c..96bbf79e4d3255e4f7e862550974fd5b0ce1021f 100644 --- a/src/SignatureAssertionUtil.php +++ b/src/SignatureAssertionUtil.php @@ -34,11 +34,12 @@ final class SignatureAssertionUtil $i = 0; /** @var string[] $parameters */ foreach ($parameters AS $parameter) { - assert(is_string($parameter)); - $parameterReflection = $reflection->getParameters()[$i++]; assert($parameterReflection instanceof \ReflectionParameter); + if ($parameter === 'any') continue; + assert(is_string($parameter)); + self::checkFunctionParameter( $reflection, $parameterReflection, diff --git a/tests/fn.assertSignature.any-parameter.phpt b/tests/fn.assertSignature.any-parameter.phpt new file mode 100644 index 0000000000000000000000000000000000000000..b69f63c7737249c746bedc79eaf5ba4c1c916d77 --- /dev/null +++ b/tests/fn.assertSignature.any-parameter.phpt @@ -0,0 +1,14 @@ +<?php declare(strict_types=1); +namespace MyTestNamespace; +require __DIR__ . '/bootstrap.php'; +require __DIR__ . '/testClasses.php'; +use function Grifart\AssertFunction\{assertSignature, nullable, params}; +use Grifart\AssertFunction\FunctionSignatureAssertionError; +use Tester\Assert; +$place = 'tests/' . basename(__FILE__) . ':' . (__LINE__ +2) . ' '; + +$fn = function(string $p1, $p2) {}; + +assertSignature($fn, params('any', 'mixed'), 'mixed'); + +Assert::true(true); // if assertion do not fail, we are OK