Skip to content

Commit 23939e1

Browse files
committed
fixup! Add MemoizationPropertyRule
1 parent 2154e33 commit 23939e1

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

build/PHPStan/Build/MemoizationPropertyRule.php

Lines changed: 6 additions & 5 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_;
@@ -19,7 +20,6 @@
1920
use PHPStan\Rules\RuleErrorBuilder;
2021
use function count;
2122
use function dirname;
22-
use function get_class;
2323
use function sprintf;
2424
use function str_starts_with;
2525
use function strcasecmp;
@@ -53,8 +53,9 @@ public function processNode(Node $node, Scope $scope): array
5353

5454
[$ifNode, $returnNode] = $stmts;
5555

56-
if (!$returnNode instanceof Return_ ||
57-
!$returnNode->expr instanceof PropertyFetch
56+
if (!$returnNode instanceof Return_
57+
|| !$returnNode->expr instanceof PropertyFetch
58+
|| !$returnNode->expr->var instanceof Variable
5859
) {
5960
return [];
6061
}
@@ -66,6 +67,7 @@ public function processNode(Node $node, Scope $scope): array
6667
|| $ifNode->else !== null
6768
|| !$ifNode->cond instanceof Identical
6869
|| !$ifNode->cond->left instanceof PropertyFetch
70+
|| !$ifNode->cond->left->var instanceof Variable
6971
|| !$ifNode->cond->right instanceof ConstFetch
7072
|| strcasecmp($ifNode->cond->right->name->name, 'null') !== 0
7173
) {
@@ -78,8 +80,7 @@ public function processNode(Node $node, Scope $scope): array
7880
return [];
7981
}
8082

81-
if (get_class($returnNode->expr) !== get_class($ifNode->cond->left)
82-
|| get_class($returnNode->expr->var) !== get_class($ifNode->cond->left->var)
83+
if ($returnNode->expr->var->name !== $ifNode->cond->left->var->name
8384
|| !$returnNode->expr->name instanceof Identifier
8485
|| !$ifNode->cond->left->name instanceof Identifier
8586
|| $returnNode->expr->name->name !== $ifNode->cond->left->name->name

0 commit comments

Comments
 (0)