From 18d03bf89d63b4a49e03ef55f4d59d614ae6262e Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 4 Jan 2026 21:37:08 +0100 Subject: [PATCH 1/2] More precise Type->getCallableParametersAcceptors() return type --- src/Analyser/NodeScopeResolver.php | 28 +++++++++++++--------------- src/Type/Type.php | 2 +- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 39ab04a148..76ff7ece6b 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -5281,25 +5281,23 @@ public function createCallableParameters(Scope $scope, Expr $closureExpr, ?array } $acceptors = $passedToType->getCallableParametersAcceptors($scope); - if (count($acceptors) > 0) { - foreach ($acceptors as $acceptor) { - if ($callableParameters === null) { - $callableParameters = $acceptor->getParameters(); - continue; - } - - $newParameters = []; - foreach ($acceptor->getParameters() as $i => $callableParameter) { - if (!array_key_exists($i, $callableParameters)) { - $newParameters[] = $callableParameter; - continue; - } + foreach ($acceptors as $acceptor) { + if ($callableParameters === null) { + $callableParameters = $acceptor->getParameters(); + continue; + } - $newParameters[] = $callableParameters[$i]->union($callableParameter); + $newParameters = []; + foreach ($acceptor->getParameters() as $i => $callableParameter) { + if (!array_key_exists($i, $callableParameters)) { + $newParameters[] = $callableParameter; + continue; } - $callableParameters = $newParameters; + $newParameters[] = $callableParameters[$i]->union($callableParameter); } + + $callableParameters = $newParameters; } } diff --git a/src/Type/Type.php b/src/Type/Type.php index e9cbca0b7a..4690125478 100644 --- a/src/Type/Type.php +++ b/src/Type/Type.php @@ -207,7 +207,7 @@ public function exponentiate(Type $exponent): Type; public function isCallable(): TrinaryLogic; /** - * @return CallableParametersAcceptor[] + * @return list */ public function getCallableParametersAcceptors(ClassMemberAccessAnswerer $scope): array; From eff5201158d9e42813d8c8aec29004f193c0b875 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 4 Jan 2026 21:39:47 +0100 Subject: [PATCH 2/2] fix --- src/Reflection/Callables/FunctionCallableVariant.php | 4 ++-- src/Type/ObjectType.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Reflection/Callables/FunctionCallableVariant.php b/src/Reflection/Callables/FunctionCallableVariant.php index 5e385e4480..ca45e92e3c 100644 --- a/src/Reflection/Callables/FunctionCallableVariant.php +++ b/src/Reflection/Callables/FunctionCallableVariant.php @@ -33,8 +33,8 @@ public function __construct( } /** - * @param ExtendedParametersAcceptor[] $variants - * @return self[] + * @param list $variants + * @return list */ public static function createFromVariants(FunctionReflection|ExtendedMethodReflection $function, array $variants): array { diff --git a/src/Type/ObjectType.php b/src/Type/ObjectType.php index 3b7a72baaa..b55ff834de 100644 --- a/src/Type/ObjectType.php +++ b/src/Type/ObjectType.php @@ -1550,7 +1550,7 @@ public function getCallableParametersAcceptors(ClassMemberAccessAnswerer $scope) } /** - * @return CallableParametersAcceptor[]|null + * @return list|null */ private function findCallableParametersAcceptors(): ?array {