diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 72011f6498..e3a08f6f55 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -5558,6 +5558,7 @@ private function processArgs( { $args = $callLike->getArgs(); + $parameters = null; if ($parametersAcceptor !== null) { $parameters = $parametersAcceptor->getParameters(); } @@ -5571,7 +5572,7 @@ private function processArgs( $parameter = null; $parameterType = null; $parameterNativeType = null; - if (isset($parameters) && $parametersAcceptor !== null) { + if ($parameters !== null) { if (isset($parameters[$i])) { $assignByReference = $parameters[$i]->passedByReference()->createsNewVariable(); $parameterType = $parameters[$i]->getType(); @@ -5752,7 +5753,7 @@ private function processArgs( $scope = $scope->restoreOriginalScopeAfterClosureBind($originalScope); } - if (isset($parameters) && $parametersAcceptor !== null) { + if ($parameters !== null) { foreach ($args as $i => $arg) { $byRefType = new MixedType(); $assignByReference = false; @@ -5843,19 +5844,19 @@ private function processArgs( private function callCallbackImmediately(?ParameterReflection $parameter, ?Type $parameterType, $calleeReflection): bool { $parameterCallableType = null; - if ($parameterType !== null) { + if ($parameterType !== null && $calleeReflection instanceof FunctionReflection) { $parameterCallableType = TypeUtils::findCallableType($parameterType); } if ($parameter instanceof ExtendedParameterReflection) { $parameterCallImmediately = $parameter->isImmediatelyInvokedCallable(); if ($parameterCallImmediately->maybe()) { - $callCallbackImmediately = $parameterCallableType !== null && $calleeReflection instanceof FunctionReflection; + $callCallbackImmediately = $parameterCallableType !== null; } else { $callCallbackImmediately = $parameterCallImmediately->yes(); } } else { - $callCallbackImmediately = $parameterCallableType !== null && $calleeReflection instanceof FunctionReflection; + $callCallbackImmediately = $parameterCallableType !== null; } return $callCallbackImmediately;