Skip to content

Commit 80b7f0b

Browse files
committed
Don't forget property-fetch scope-expressions on $this after static method call
1 parent 95d3e90 commit 80b7f0b

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/Analyser/MutatingScope.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4597,7 +4597,7 @@ private function shouldInvalidateExpression(string $exprStringToInvalidate, Expr
45974597
return true;
45984598
}
45994599

4600-
private function invalidateMethodsOnExpression(Expr $expressionToInvalidate): self
4600+
public function invalidateMethodsOnExpression(Expr $expressionToInvalidate): self
46014601
{
46024602
$exprStringToInvalidate = $this->getNodeKey($expressionToInvalidate);
46034603
$expressionTypes = $this->expressionTypes;

src/Analyser/NodeScopeResolver.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3117,7 +3117,11 @@ static function (): void {
31173117
&& $scope->isInClass()
31183118
&& $scope->getClassReflection()->is($methodReflection->getDeclaringClass()->getName())
31193119
) {
3120-
$scope = $scope->invalidateExpression(new Variable('this'), true);
3120+
if ($methodReflection->isStatic()) {
3121+
$scope = $scope->invalidateMethodsOnExpression(new Variable('this'));
3122+
} else {
3123+
$scope = $scope->invalidateExpression(new Variable('this'), true);
3124+
}
31213125
}
31223126

31233127
if (

0 commit comments

Comments
 (0)