From 561f041784ebea0d106975b769aa16500ed72f06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Kucha=C5=99?= <honza.kuchar@grifart.cz>
Date: Mon, 20 Aug 2018 16:46:01 +0200
Subject: [PATCH] support for any pseudotype

---
 src/SignatureAssertionUtil.php              |  5 +++--
 tests/fn.assertSignature.any-parameter.phpt | 14 ++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)
 create mode 100644 tests/fn.assertSignature.any-parameter.phpt

diff --git a/src/SignatureAssertionUtil.php b/src/SignatureAssertionUtil.php
index 9efb028..96bbf79 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 0000000..b69f63c
--- /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
-- 
GitLab