From a71bfe799e3bf7db9dc147316cbe2eb83533f8c7 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 24 Jan 2026 17:06:29 +0100 Subject: [PATCH 1/3] ImpossibleCheckTypeHelper: Remove unnecessary late-resolving --- src/Rules/Comparison/ImpossibleCheckTypeHelper.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Rules/Comparison/ImpossibleCheckTypeHelper.php b/src/Rules/Comparison/ImpossibleCheckTypeHelper.php index b353e7f60d..5f1a8a94de 100644 --- a/src/Rules/Comparison/ImpossibleCheckTypeHelper.php +++ b/src/Rules/Comparison/ImpossibleCheckTypeHelper.php @@ -428,16 +428,16 @@ private function determineContext(Scope $scope, Expr $node): TypeSpecifierContex if ($this->reflectionProvider->hasFunction($node->name, $scope)) { $functionReflection = $this->reflectionProvider->getFunction($node->name, $scope); $parametersAcceptor = ParametersAcceptorSelector::selectFromArgs($scope, $node->getArgs(), $functionReflection->getVariants(), $functionReflection->getNamedArgumentsVariants()); - $returnType = TypeUtils::resolveLateResolvableTypes($parametersAcceptor->getReturnType()); + $returnType = $parametersAcceptor->getReturnType(); - return $returnType->isVoid()->yes() ? TypeSpecifierContext::createNull() : TypeSpecifierContext::createTruthy(); + return $parametersAcceptor->getReturnType()->isVoid()->yes() ? TypeSpecifierContext::createNull() : TypeSpecifierContext::createTruthy(); } } elseif ($node instanceof MethodCall && $node->name instanceof Node\Identifier) { $methodCalledOnType = $scope->getType($node->var); $methodReflection = $scope->getMethodReflection($methodCalledOnType, $node->name->name); if ($methodReflection !== null) { $parametersAcceptor = ParametersAcceptorSelector::selectFromArgs($scope, $node->getArgs(), $methodReflection->getVariants(), $methodReflection->getNamedArgumentsVariants()); - $returnType = TypeUtils::resolveLateResolvableTypes($parametersAcceptor->getReturnType()); + $returnType = $parametersAcceptor->getReturnType(); return $returnType->isVoid()->yes() ? TypeSpecifierContext::createNull() : TypeSpecifierContext::createTruthy(); } @@ -451,7 +451,7 @@ private function determineContext(Scope $scope, Expr $node): TypeSpecifierContex $staticMethodReflection = $scope->getMethodReflection($calleeType, $node->name->name); if ($staticMethodReflection !== null) { $parametersAcceptor = ParametersAcceptorSelector::selectFromArgs($scope, $node->getArgs(), $staticMethodReflection->getVariants(), $staticMethodReflection->getNamedArgumentsVariants()); - $returnType = TypeUtils::resolveLateResolvableTypes($parametersAcceptor->getReturnType()); + $returnType = $parametersAcceptor->getReturnType(); return $returnType->isVoid()->yes() ? TypeSpecifierContext::createNull() : TypeSpecifierContext::createTruthy(); } From 4ce9b3030664cb4d82061e01c51b62c507e1f7a8 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 24 Jan 2026 17:15:01 +0100 Subject: [PATCH 2/3] cs --- src/Rules/Comparison/ImpossibleCheckTypeHelper.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Rules/Comparison/ImpossibleCheckTypeHelper.php b/src/Rules/Comparison/ImpossibleCheckTypeHelper.php index 5f1a8a94de..d209b9d443 100644 --- a/src/Rules/Comparison/ImpossibleCheckTypeHelper.php +++ b/src/Rules/Comparison/ImpossibleCheckTypeHelper.php @@ -28,7 +28,6 @@ use PHPStan\Type\ObjectType; use PHPStan\Type\Type; use PHPStan\Type\TypeTraverser; -use PHPStan\Type\TypeUtils; use PHPStan\Type\TypeWithClassName; use PHPStan\Type\UnionType; use PHPStan\Type\VerbosityLevel; From bdcb448104e03d6027c14ec4d6582d68c4c6285f Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 24 Jan 2026 17:20:31 +0100 Subject: [PATCH 3/3] Update ImpossibleCheckTypeHelper.php --- src/Rules/Comparison/ImpossibleCheckTypeHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Rules/Comparison/ImpossibleCheckTypeHelper.php b/src/Rules/Comparison/ImpossibleCheckTypeHelper.php index d209b9d443..1ebe569289 100644 --- a/src/Rules/Comparison/ImpossibleCheckTypeHelper.php +++ b/src/Rules/Comparison/ImpossibleCheckTypeHelper.php @@ -429,7 +429,7 @@ private function determineContext(Scope $scope, Expr $node): TypeSpecifierContex $parametersAcceptor = ParametersAcceptorSelector::selectFromArgs($scope, $node->getArgs(), $functionReflection->getVariants(), $functionReflection->getNamedArgumentsVariants()); $returnType = $parametersAcceptor->getReturnType(); - return $parametersAcceptor->getReturnType()->isVoid()->yes() ? TypeSpecifierContext::createNull() : TypeSpecifierContext::createTruthy(); + return $returnType->isVoid()->yes() ? TypeSpecifierContext::createNull() : TypeSpecifierContext::createTruthy(); } } elseif ($node instanceof MethodCall && $node->name instanceof Node\Identifier) { $methodCalledOnType = $scope->getType($node->var);