8
8
use PhpParser \Node \Expr \BinaryOp \Identical ;
9
9
use PhpParser \Node \Expr \ConstFetch ;
10
10
use PhpParser \Node \Expr \PropertyFetch ;
11
+ use PhpParser \Node \Expr \Variable ;
11
12
use PhpParser \Node \Identifier ;
12
13
use PhpParser \Node \Stmt \Expression ;
13
14
use PhpParser \Node \Stmt \If_ ;
@@ -53,8 +54,9 @@ public function processNode(Node $node, Scope $scope): array
53
54
54
55
[$ ifNode , $ returnNode ] = $ stmts ;
55
56
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
58
60
) {
59
61
return [];
60
62
}
@@ -66,6 +68,7 @@ public function processNode(Node $node, Scope $scope): array
66
68
|| $ ifNode ->else !== null
67
69
|| !$ ifNode ->cond instanceof Identical
68
70
|| !$ ifNode ->cond ->left instanceof PropertyFetch
71
+ || !$ ifNode ->cond ->left ->var instanceof Variable
69
72
|| !$ ifNode ->cond ->right instanceof ConstFetch
70
73
|| strcasecmp ($ ifNode ->cond ->right ->name ->name , 'null ' ) !== 0
71
74
) {
@@ -79,7 +82,7 @@ public function processNode(Node $node, Scope $scope): array
79
82
}
80
83
81
84
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
83
86
|| !$ returnNode ->expr ->name instanceof Identifier
84
87
|| !$ ifNode ->cond ->left ->name instanceof Identifier
85
88
|| $ returnNode ->expr ->name ->name !== $ ifNode ->cond ->left ->name ->name
0 commit comments