|
5 | 5 | namespace SlamPhpStan; |
6 | 6 |
|
7 | 7 | use PhpParser\Node; |
8 | | -use PhpParser\Node\Expr\ArrayDimFetch; |
9 | 8 | use PhpParser\Node\Expr\Assign; |
10 | 9 | use PhpParser\Node\Expr\Closure; |
11 | | -use PhpParser\Node\Expr\PropertyFetch; |
12 | 10 | use PhpParser\Node\Expr\Variable; |
13 | 11 | use PhpParser\Node\FunctionLike; |
14 | 12 | use PhpParser\Node\Scalar\String_; |
@@ -96,15 +94,16 @@ private function gatherVariablesUsage(Node $node, array & $unusedVariables, arra |
96 | 94 | if (\is_string($node->var->name) && ! isset($parameters[$node->var->name]) && ! isset(self::$globalVariables[$node->var->name])) { |
97 | 95 | $unusedVariables[$node->var->name] = $node->var; |
98 | 96 | } |
99 | | - } elseif ($node->var instanceof PropertyFetch) { |
100 | | - $this->gatherVariablesUsage($node->var->var, $unusedVariables, $usedVariables, $parameters); |
101 | | - } elseif ($node->var instanceof ArrayDimFetch) { |
102 | | - if ($node->var->var instanceof Node) { |
| 97 | + } else { |
| 98 | + if (\property_exists($node->var, 'var') && $node->var->var instanceof Node) { |
103 | 99 | $this->gatherVariablesUsage($node->var->var, $unusedVariables, $usedVariables, $parameters); |
104 | 100 | } |
105 | | - if ($node->var->dim instanceof Node) { |
| 101 | + if (\property_exists($node->var, 'dim') && $node->var->dim instanceof Node) { |
106 | 102 | $this->gatherVariablesUsage($node->var->dim, $unusedVariables, $usedVariables, $parameters); |
107 | 103 | } |
| 104 | + if (\property_exists($node->var, 'name') && $node->var->name instanceof Node) { |
| 105 | + $this->gatherVariablesUsage($node->var->name, $unusedVariables, $usedVariables, $parameters); |
| 106 | + } |
108 | 107 | } |
109 | 108 | } |
110 | 109 | if ($node instanceof Variable) { |
|
0 commit comments