|
7 | 7 | use PhpParser\Node; |
8 | 8 | use PhpParser\Node\Expr\BinaryOp\BooleanAnd; |
9 | 9 | use PhpParser\Node\Stmt\Else_; |
| 10 | +use PhpParser\Node\Stmt\ElseIf_; |
10 | 11 | use PhpParser\Node\Stmt\If_; |
11 | 12 | use PhpParser\NodeVisitor; |
12 | 13 | use Rector\DeadCode\SideEffect\SideEffectNodeDetector; |
@@ -100,16 +101,16 @@ public function refactor(Node $node): int|null|If_ |
100 | 101 | return $this->refactor($node) ?? $node; |
101 | 102 | } |
102 | 103 |
|
103 | | - if ($node->elseifs !== []) { |
104 | | - foreach ($node->elseifs as $elseif) { |
105 | | - $keep_elseifs = array_filter( |
106 | | - $node->elseifs, |
107 | | - fn ($elseif) => $elseif->stmts !== [] || $this->sideEffectNodeDetector->detect($elseif->cond) |
108 | | - ); |
109 | | - if (count($node->elseifs) !== count($keep_elseifs)) { |
110 | | - $node->elseifs = $keep_elseifs; |
111 | | - return $this->refactor($node) ?? $node; |
112 | | - } |
| 104 | + foreach ($node->elseifs as $elseif) { |
| 105 | + $keep_elseifs = array_filter( |
| 106 | + $node->elseifs, |
| 107 | + fn (ElseIf_ $elseif): bool => $elseif->stmts !== [] || $this->sideEffectNodeDetector->detect( |
| 108 | + $elseif->cond |
| 109 | + ) |
| 110 | + ); |
| 111 | + if (count($node->elseifs) !== count($keep_elseifs)) { |
| 112 | + $node->elseifs = $keep_elseifs; |
| 113 | + return $this->refactor($node) ?? $node; |
113 | 114 | } |
114 | 115 | } |
115 | 116 |
|
@@ -141,6 +142,7 @@ public function refactor(Node $node): int|null|If_ |
141 | 142 | if (count($node->elseifs) > 1) { |
142 | 143 | $if->elseifs = \array_slice($node->elseifs, 1); |
143 | 144 | } |
| 145 | + |
144 | 146 | return $this->refactor($if) ?? $if; |
145 | 147 | } |
146 | 148 |
|
|
0 commit comments