diff --git a/src/Mutator/Removal/SharedCaseRemoval.php b/src/Mutator/Removal/SharedCaseRemoval.php index f9f29fa2c7..a8390da4d0 100644 --- a/src/Mutator/Removal/SharedCaseRemoval.php +++ b/src/Mutator/Removal/SharedCaseRemoval.php @@ -79,11 +79,11 @@ public function canMutate(Node $node): bool */ public function mutate(Node $node): iterable { - $lastWasEmpty = false; + $previousWasEmpty = false; foreach ($node->cases as $i => $case) { if ($case->stmts === []) { - $lastWasEmpty = true; + $previousWasEmpty = true; $cases = $node->cases; unset($cases[$i]); @@ -92,8 +92,10 @@ public function mutate(Node $node): iterable $cases, $node->getAttributes() ); - } elseif ($lastWasEmpty) { - $lastWasEmpty = false; + continue; + } + if ($previousWasEmpty) { + $previousWasEmpty = false; $cases = $node->cases; unset($cases[$i]); $lastCase = $cases[$i - 1]; diff --git a/tests/phpunit/Mutator/Removal/SharedCaseRemovalTest.php b/tests/phpunit/Mutator/Removal/SharedCaseRemovalTest.php index f4ebe502d3..9b658d4968 100644 --- a/tests/phpunit/Mutator/Removal/SharedCaseRemovalTest.php +++ b/tests/phpunit/Mutator/Removal/SharedCaseRemovalTest.php @@ -53,11 +53,30 @@ public function test_it_can_mutate(string $input, $expected = [], array $setting public function mutationsProvider(): iterable { yield 'It does not mutate single cases with a body' => [ - ' [ - ' [ - '