Skip to content

Commit 29b8dc6

Browse files
committed
fixup! Add MemoizationPropertyRule
1 parent 2154e33 commit 29b8dc6

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

build/PHPStan/Build/MemoizationPropertyRule.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use PhpParser\Node\Expr\BinaryOp\Identical;
99
use PhpParser\Node\Expr\ConstFetch;
1010
use PhpParser\Node\Expr\PropertyFetch;
11+
use PhpParser\Node\Expr\Variable;
1112
use PhpParser\Node\Identifier;
1213
use PhpParser\Node\Stmt\Expression;
1314
use PhpParser\Node\Stmt\If_;
@@ -53,8 +54,9 @@ public function processNode(Node $node, Scope $scope): array
5354

5455
[$ifNode, $returnNode] = $stmts;
5556

56-
if (!$returnNode instanceof Return_ ||
57-
!$returnNode->expr instanceof PropertyFetch
57+
if (!$returnNode instanceof Return_
58+
|| !$returnNode->expr instanceof PropertyFetch
59+
|| !$returnNode->expr->var instanceof Variable
5860
) {
5961
return [];
6062
}
@@ -66,6 +68,7 @@ public function processNode(Node $node, Scope $scope): array
6668
|| $ifNode->else !== null
6769
|| !$ifNode->cond instanceof Identical
6870
|| !$ifNode->cond->left instanceof PropertyFetch
71+
|| !$ifNode->cond->left->var instanceof Variable
6972
|| !$ifNode->cond->right instanceof ConstFetch
7073
|| strcasecmp($ifNode->cond->right->name->name, 'null') !== 0
7174
) {
@@ -79,7 +82,7 @@ public function processNode(Node $node, Scope $scope): array
7982
}
8083

8184
if (get_class($returnNode->expr) !== get_class($ifNode->cond->left)
82-
|| get_class($returnNode->expr->var) !== get_class($ifNode->cond->left->var)
85+
|| $returnNode->expr->var->name !== $ifNode->cond->left->var->name
8386
|| !$returnNode->expr->name instanceof Identifier
8487
|| !$ifNode->cond->left->name instanceof Identifier
8588
|| $returnNode->expr->name->name !== $ifNode->cond->left->name->name

0 commit comments

Comments
 (0)