diff --git a/src/Analyser/MutatingScope.php b/src/Analyser/MutatingScope.php index 88ff702a1e..42e312be67 100644 --- a/src/Analyser/MutatingScope.php +++ b/src/Analyser/MutatingScope.php @@ -4597,7 +4597,7 @@ private function shouldInvalidateExpression(string $exprStringToInvalidate, Expr return true; } - private function invalidateMethodsOnExpression(Expr $expressionToInvalidate): self + public function invalidateMethodsOnExpression(Expr $expressionToInvalidate): self { $exprStringToInvalidate = $this->getNodeKey($expressionToInvalidate); $expressionTypes = $this->expressionTypes; diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 9e1b226d8c..c30e5dfd1b 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -3117,7 +3117,11 @@ static function (): void { && $scope->isInClass() && $scope->getClassReflection()->is($methodReflection->getDeclaringClass()->getName()) ) { - $scope = $scope->invalidateExpression(new Variable('this'), true); + if ($methodReflection->isStatic()) { + $scope = $scope->invalidateMethodsOnExpression(new Variable('this')); + } else { + $scope = $scope->invalidateExpression(new Variable('this'), true); + } } if (