diff --git a/rules-tests/DeadCode/Rector/Stmt/RemoveNextSameValueConditionRector/Fixture/skip_with_elseif.php.inc b/rules-tests/DeadCode/Rector/Stmt/RemoveNextSameValueConditionRector/Fixture/skip_with_elseif.php.inc new file mode 100644 index 00000000000..1b025a4c02a --- /dev/null +++ b/rules-tests/DeadCode/Rector/Stmt/RemoveNextSameValueConditionRector/Fixture/skip_with_elseif.php.inc @@ -0,0 +1,20 @@ +elseifs !== []) { + continue; + } + + if ($stmt->else instanceof Else_) { + continue; + } + // first condition must be without side effect if ($this->sideEffectNodeDetector->detect($stmt->cond)) { continue; @@ -108,6 +118,15 @@ public function refactor(Node $node): ?Node continue; } + // only when no elseif/else in next stmt + if ($nextStmt->elseifs !== []) { + continue; + } + + if ($nextStmt->else instanceof Else_) { + continue; + } + $stmt->stmts = array_merge($stmt->stmts, $nextStmt->stmts); // remove next node