Skip to content

Commit 1bc5cef

Browse files
staabmondrejmirtes
authored andcommitted
Fix "Call to function array_filter() requires parameter #2 to be passed"
1 parent c1739d0 commit 1bc5cef

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/Type/WebMozartAssert/AssertTypeSpecifyingExtension.php

+13-10
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use PhpParser\Node\Expr;
1010
use PhpParser\Node\Expr\Array_;
1111
use PhpParser\Node\Expr\ArrayDimFetch;
12-
use PhpParser\Node\Expr\ArrayItem;
1312
use PhpParser\Node\Expr\BinaryOp;
1413
use PhpParser\Node\Expr\BinaryOp\BooleanAnd;
1514
use PhpParser\Node\Expr\BinaryOp\BooleanOr;
@@ -49,9 +48,7 @@
4948
use PHPStan\Type\TypeCombinator;
5049
use ReflectionObject;
5150
use Traversable;
52-
use function array_filter;
5351
use function array_key_exists;
54-
use function array_map;
5552
use function array_reduce;
5653
use function array_shift;
5754
use function count;
@@ -966,13 +963,19 @@ private static function buildAnyOfExpr(Scope $scope, Arg $value, Arg $items, cal
966963
return null;
967964
}
968965

969-
$resolvers = array_map(
970-
static function (?ArrayItem $item) use ($scope, $value, $resolver) {
971-
return $item !== null ? $resolver($scope, $value, new Arg($item->value)) : null;
972-
},
973-
$items->value->items
974-
);
975-
$resolvers = array_filter($resolvers);
966+
$resolvers = [];
967+
foreach ($items->value->items as $key => $item) {
968+
if ($item === null) {
969+
continue;
970+
}
971+
972+
$resolved = $resolver($scope, $value, new Arg($item->value));
973+
if ($resolved === null) {
974+
continue;
975+
}
976+
977+
$resolvers[$key] = $resolved;
978+
}
976979

977980
return self::implodeExpr($resolvers, BooleanOr::class);
978981
}

0 commit comments

Comments
 (0)