From 0b3f484bf679333ccae27e4c9fe214dd4cc46621 Mon Sep 17 00:00:00 2001 From: John Shaffer Date: Tue, 21 Oct 2025 13:13:12 -0500 Subject: [PATCH 1/5] [DeadCode] Add RemoveDeadIfBlocksRector Removes ifs, elseifs, and elses with no body. Combines them with others when appropriate. ```diff class RemoveDeadIfBlock { public function run($condition) { - if ($value) { - } elseif ($differentValue) { - if ($differentValue) { - } else { - } - if ($differentValue) { echo 'different'; - } elseif ($value) { - } else { } - if ($differentValue) { - } elseif ($value) { + if (!$differentValue && $value) { echo 'value'; } else { } return $differentValue; } } ``` We avoid merging `if`` into following conditions when the `if` itself has a comment, because we can't tell if the comment will still be correct for the negated condition. At first, I tried adding logic to RemoveDeadIfForeachForRector to remove elseifs and elses. That worked, but as I added code it was clunky to have so much unrelated `if` logic in `for` and `foreach` rector. So I moved it to a brand new rector with a simpler implementation. I borrowed significant code from RemoveAlwaysTrueIfConditionRector as well. This can serve as support for smarter rectors like "RemoveAlwaysTrueIf" and my WIP "RemoveAlwaysFalseIf". Properly modifying `if`s requires a lot of extra logic that complicates the implementation of those rectors. In the future, they can do something simpler like removing the body statements but leaving the if structure in place. Then this rector can perform the restructuring of the if. --- .../Fixture/fixture.php.inc | 52 +++++ .../Fixture/if_else_no_stmt.php.inc | 32 ++++ .../Fixture/if_elseif_no_stmt.php.inc | 36 ++++ .../Fixture/if_no_stmt_with_else.php.inc | 32 ++++ .../if_no_stmt_with_else_no_stmt.php.inc | 28 +++ .../Fixture/side_effect_checks.php.inc | 33 ++++ .../Fixture/skip_if_comment.php.inc | 19 ++ .../Fixture/skip_used_in_next_stmt.php.inc | 19 ++ .../Fixture/skip_used_in_next_stmt2.php.inc | 19 ++ .../RemoveDeadIfBlocksRectorTest.php | 28 +++ .../config/configured_rule.php | 9 + .../Rector/If_/RemoveDeadIfBlocksRector.php | 180 ++++++++++++++++++ 12 files changed, 487 insertions(+) create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/fixture.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_else_no_stmt.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_elseif_no_stmt.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else_no_stmt.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/side_effect_checks.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_if_comment.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt2.php.inc create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/RemoveDeadIfBlocksRectorTest.php create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php create mode 100644 rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/fixture.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/fixture.php.inc new file mode 100644 index 00000000000..cd1d128d86d --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/fixture.php.inc @@ -0,0 +1,52 @@ + +----- + diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_else_no_stmt.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_else_no_stmt.php.inc new file mode 100644 index 00000000000..f4d7369ec63 --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_else_no_stmt.php.inc @@ -0,0 +1,32 @@ + +----- + diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_elseif_no_stmt.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_elseif_no_stmt.php.inc new file mode 100644 index 00000000000..c83b10a3c7a --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_elseif_no_stmt.php.inc @@ -0,0 +1,36 @@ + +----- + diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else.php.inc new file mode 100644 index 00000000000..b3ff88692ba --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else.php.inc @@ -0,0 +1,32 @@ + +----- + diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else_no_stmt.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else_no_stmt.php.inc new file mode 100644 index 00000000000..b3a7dd34328 --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/if_no_stmt_with_else_no_stmt.php.inc @@ -0,0 +1,28 @@ + +----- + diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/side_effect_checks.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/side_effect_checks.php.inc new file mode 100644 index 00000000000..abd393a3b6b --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/side_effect_checks.php.inc @@ -0,0 +1,33 @@ + +----- + diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_if_comment.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_if_comment.php.inc new file mode 100644 index 00000000000..4f2dd6b6562 --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_if_comment.php.inc @@ -0,0 +1,19 @@ + diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt.php.inc new file mode 100644 index 00000000000..d7b48bec3e5 --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt.php.inc @@ -0,0 +1,19 @@ += 0 && $result[$i] === '0'; $i--) { + ; + } + + if ($i >= 0 && $result[$i] === $decimalSep) { + $i--; + } + + $result = substr($result, 0, $i + 1); + } +} diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt2.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt2.php.inc new file mode 100644 index 00000000000..cf4814d6051 --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_used_in_next_stmt2.php.inc @@ -0,0 +1,19 @@ + $value) { + ; + } + + if ($i >= 0 && $result[$i] === $decimalSep) { + $i--; + } + + $result = substr($result, 0, $i + 1); + } +} diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/RemoveDeadIfBlocksRectorTest.php b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/RemoveDeadIfBlocksRectorTest.php new file mode 100644 index 00000000000..cf83d539e4e --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/RemoveDeadIfBlocksRectorTest.php @@ -0,0 +1,28 @@ +doTestFile($filePath); + } + + public static function provideData(): Iterator + { + return self::yieldFilesFromDirectory(__DIR__ . '/Fixture'); + } + + public function provideConfigFilePath(): string + { + return __DIR__ . '/config/configured_rule.php'; + } +} diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php new file mode 100644 index 00000000000..e3defc172c3 --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php @@ -0,0 +1,9 @@ +withRules([RemoveDeadIfBlocksRector::class]); diff --git a/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php b/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php new file mode 100644 index 00000000000..a762ef6f7fa --- /dev/null +++ b/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php @@ -0,0 +1,180 @@ +> + */ + public function getNodeTypes(): array + { + return [If_::class]; + } + + /** + * @param If_ $node + * @return NodeVisitor::REMOVE_NODE|null|If_ + */ + public function refactor(Node $node): int|null|If_ + { + if ($node->else instanceof Else_ && $node->else->stmts === []) { + $node->else = null; + return $this->refactor($node) ?? $node; + } + + if ($node->elseifs !== []) { + foreach ($node->elseifs as $elseif) { + $keep_elseifs = array_filter( + $node->elseifs, + fn ($elseif) => $elseif->stmts !== [] && ! $this->shouldSkipExpr($elseif->cond) + ); + if (count($node->elseifs) !== count($keep_elseifs)) { + $node->elseifs = $keep_elseifs; + return $this->refactor($node) ?? $node; + } + } + } + + if ($node->stmts !== []) { + return null; + } + + // Skip commented blocks because we can't know + // if the comment will make sense after merging. + if ($node->getComments() !== []) { + return null; + } + + if ($this->shouldSkipExpr($node->cond)) { + return null; + } + + // When the if body is blank but it has an elseif, + // merge the negated if condition with the elseif condition + if ($node->elseifs !== []) { + $firstElseIf = $node->elseifs[0]; + $cond = new BooleanAnd( + $this->conditionInverter->createInvertedCondition($node->cond), + $firstElseIf->cond + ); + $if = new If_($cond, [ + 'stmts' => $firstElseIf->stmts, + ]); + if (count($node->elseifs) > 1) { + $if->elseifs = \array_slice($node->elseifs, 1); + } + return $this->refactor($if) ?? $if; + } + + if ($node->else instanceof Else_) { + $node->cond = $this->conditionInverter->createInvertedCondition($node->cond); + $node->stmts = $node->else->stmts; + $node->else = null; + return $node; + } + + return NodeVisitor::REMOVE_NODE; + } + + private function shouldSkipExpr(Expr $expr): bool + { + return (bool) $this->betterNodeFinder->findInstancesOf( + $expr, + [ + Assign::class, + ArrayDimFetch::class, + CallLike::class, + MethodCall::class, + PropertyFetch::class, + StaticCall::class, + StaticPropertyFetch::class, + ] + ); + } +} From 2d7c59cfd76d2b14e87f287c42b61e233933f73c Mon Sep 17 00:00:00 2001 From: John Shaffer Date: Tue, 21 Oct 2025 13:41:03 -0500 Subject: [PATCH 2/5] [DeadCode] Add RemoveDeadIfBlocksRector to levels --- src/Config/Level/DeadCodeLevel.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Config/Level/DeadCodeLevel.php b/src/Config/Level/DeadCodeLevel.php index 71c5f42f0ae..8376013fac7 100644 --- a/src/Config/Level/DeadCodeLevel.php +++ b/src/Config/Level/DeadCodeLevel.php @@ -40,6 +40,7 @@ use Rector\DeadCode\Rector\FunctionLike\RemoveDeadReturnRector; use Rector\DeadCode\Rector\If_\ReduceAlwaysFalseIfOrRector; use Rector\DeadCode\Rector\If_\RemoveAlwaysTrueIfConditionRector; +use Rector\DeadCode\Rector\If_\RemoveDeadIfBlocksRector; use Rector\DeadCode\Rector\If_\RemoveDeadInstanceOfRector; use Rector\DeadCode\Rector\If_\RemoveTypedPropertyDeadInstanceOfRector; use Rector\DeadCode\Rector\If_\RemoveUnusedNonEmptyArrayBeforeForeachRector; @@ -124,6 +125,7 @@ final class DeadCodeLevel RemoveDeadCatchRector::class, RemoveDeadTryCatchRector::class, + RemoveDeadIfBlocksRector::class, RemoveDeadIfForeachForRector::class, RemoveConditionExactReturnRector::class, RemoveDeadStmtRector::class, From 13e2191e4545f1d5cceb1a718706bea98e5d0939 Mon Sep 17 00:00:00 2001 From: John Shaffer Date: Tue, 21 Oct 2025 14:05:53 -0500 Subject: [PATCH 3/5] Fix removing elseifs that should be skipped I accidentally put an && ! condition rather than an ||, causing elseifs with skippable exprs to get removed rather than being skipped. - Fix the conditional - Add a test for skippable exprs in elseif condition. --- .../Fixture/skip_property_fetch.php.inc | 17 +++++++++++++++++ .../Rector/If_/RemoveDeadIfBlocksRector.php | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_property_fetch.php.inc diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_property_fetch.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_property_fetch.php.inc new file mode 100644 index 00000000000..a9c7c84c0cf --- /dev/null +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/skip_property_fetch.php.inc @@ -0,0 +1,17 @@ +v) { + echo '2'; + } + } +} + +?> diff --git a/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php b/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php index a762ef6f7fa..c966b956dfe 100644 --- a/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php +++ b/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php @@ -112,7 +112,7 @@ public function refactor(Node $node): int|null|If_ foreach ($node->elseifs as $elseif) { $keep_elseifs = array_filter( $node->elseifs, - fn ($elseif) => $elseif->stmts !== [] && ! $this->shouldSkipExpr($elseif->cond) + fn ($elseif) => $elseif->stmts !== [] || $this->shouldSkipExpr($elseif->cond) ); if (count($node->elseifs) !== count($keep_elseifs)) { $node->elseifs = $keep_elseifs; From 85855c199ff228b8b333ebb9359ac842691c12df Mon Sep 17 00:00:00 2001 From: John Shaffer Date: Fri, 24 Oct 2025 13:15:38 -0500 Subject: [PATCH 4/5] Use SideEffectNodeDetector --- .../Rector/If_/RemoveDeadIfBlocksRector.php | 32 +++---------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php b/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php index c966b956dfe..c0b5e4e55e0 100644 --- a/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php +++ b/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php @@ -5,20 +5,12 @@ namespace Rector\DeadCode\Rector\If_; use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Expr\ArrayDimFetch; -use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\BinaryOp\BooleanAnd; -use PhpParser\Node\Expr\CallLike; -use PhpParser\Node\Expr\MethodCall; -use PhpParser\Node\Expr\PropertyFetch; -use PhpParser\Node\Expr\StaticCall; -use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\If_; use PhpParser\NodeVisitor; +use Rector\DeadCode\SideEffect\SideEffectNodeDetector; use Rector\EarlyReturn\NodeTransformer\ConditionInverter; -use Rector\PhpParser\Node\BetterNodeFinder; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -30,7 +22,7 @@ final class RemoveDeadIfBlocksRector extends AbstractRector { public function __construct( private readonly ConditionInverter $conditionInverter, - private readonly BetterNodeFinder $betterNodeFinder, + private readonly SideEffectNodeDetector $sideEffectNodeDetector, ) { } @@ -112,7 +104,7 @@ public function refactor(Node $node): int|null|If_ foreach ($node->elseifs as $elseif) { $keep_elseifs = array_filter( $node->elseifs, - fn ($elseif) => $elseif->stmts !== [] || $this->shouldSkipExpr($elseif->cond) + fn ($elseif) => $elseif->stmts !== [] || $this->sideEffectNodeDetector->detect($elseif->cond) ); if (count($node->elseifs) !== count($keep_elseifs)) { $node->elseifs = $keep_elseifs; @@ -131,7 +123,7 @@ public function refactor(Node $node): int|null|If_ return null; } - if ($this->shouldSkipExpr($node->cond)) { + if ($this->sideEffectNodeDetector->detect($node->cond)) { return null; } @@ -161,20 +153,4 @@ public function refactor(Node $node): int|null|If_ return NodeVisitor::REMOVE_NODE; } - - private function shouldSkipExpr(Expr $expr): bool - { - return (bool) $this->betterNodeFinder->findInstancesOf( - $expr, - [ - Assign::class, - ArrayDimFetch::class, - CallLike::class, - MethodCall::class, - PropertyFetch::class, - StaticCall::class, - StaticPropertyFetch::class, - ] - ); - } } From fabfb4a01ca8db2b19c200709e565f803bd9be22 Mon Sep 17 00:00:00 2001 From: John Shaffer Date: Fri, 24 Oct 2025 15:04:03 -0500 Subject: [PATCH 5/5] Rename to singular to match other class names --- .../Fixture/fixture.php.inc | 4 ++-- .../Fixture/if_else_no_stmt.php.inc | 4 ++-- .../Fixture/if_elseif_no_stmt.php.inc | 4 ++-- .../Fixture/if_no_stmt_with_else.php.inc | 4 ++-- .../Fixture/if_no_stmt_with_else_no_stmt.php.inc | 4 ++-- .../Fixture/side_effect_checks.php.inc | 4 ++-- .../Fixture/skip_if_comment.php.inc | 2 +- .../Fixture/skip_property_fetch.php.inc | 2 +- .../Fixture/skip_used_in_next_stmt.php.inc | 2 +- .../Fixture/skip_used_in_next_stmt2.php.inc | 2 +- .../RemoveDeadIfBlockRectorTest.php} | 4 ++-- .../RemoveDeadIfBlockRector/config/configured_rule.php | 9 +++++++++ .../RemoveDeadIfBlocksRector/config/configured_rule.php | 9 --------- ...eadIfBlocksRector.php => RemoveDeadIfBlockRector.php} | 4 ++-- src/Config/Level/DeadCodeLevel.php | 4 ++-- 15 files changed, 31 insertions(+), 31 deletions(-) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/fixture.php.inc (82%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/if_else_no_stmt.php.inc (67%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/if_elseif_no_stmt.php.inc (74%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/if_no_stmt_with_else.php.inc (68%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/if_no_stmt_with_else_no_stmt.php.inc (61%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/side_effect_checks.php.inc (62%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/skip_if_comment.php.inc (74%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/skip_property_fetch.php.inc (72%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/skip_used_in_next_stmt.php.inc (81%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector => RemoveDeadIfBlockRector}/Fixture/skip_used_in_next_stmt2.php.inc (79%) rename rules-tests/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector/RemoveDeadIfBlocksRectorTest.php => RemoveDeadIfBlockRector/RemoveDeadIfBlockRectorTest.php} (79%) create mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlockRector/config/configured_rule.php delete mode 100644 rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php rename rules/DeadCode/Rector/If_/{RemoveDeadIfBlocksRector.php => RemoveDeadIfBlockRector.php} (96%) diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/fixture.php.inc b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlockRector/Fixture/fixture.php.inc similarity index 82% rename from rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/fixture.php.inc rename to rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlockRector/Fixture/fixture.php.inc index cd1d128d86d..866d950a398 100644 --- a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/Fixture/fixture.php.inc +++ b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlockRector/Fixture/fixture.php.inc @@ -1,6 +1,6 @@ withRules([RemoveDeadIfBlockRector::class]); diff --git a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php b/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php deleted file mode 100644 index e3defc172c3..00000000000 --- a/rules-tests/DeadCode/Rector/If_/RemoveDeadIfBlocksRector/config/configured_rule.php +++ /dev/null @@ -1,9 +0,0 @@ -withRules([RemoveDeadIfBlocksRector::class]); diff --git a/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php b/rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php similarity index 96% rename from rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php rename to rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php index c0b5e4e55e0..87456f68511 100644 --- a/rules/DeadCode/Rector/If_/RemoveDeadIfBlocksRector.php +++ b/rules/DeadCode/Rector/If_/RemoveDeadIfBlockRector.php @@ -16,9 +16,9 @@ use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** - * @see \Rector\Tests\DeadCode\Rector\If_\RemoveDeadIfBlocksRector\RemoveDeadIfBlocksRectorTest + * @see \Rector\Tests\DeadCode\Rector\If_\RemoveDeadIfBlockRector\RemoveDeadIfBlockRectorTest */ -final class RemoveDeadIfBlocksRector extends AbstractRector +final class RemoveDeadIfBlockRector extends AbstractRector { public function __construct( private readonly ConditionInverter $conditionInverter, diff --git a/src/Config/Level/DeadCodeLevel.php b/src/Config/Level/DeadCodeLevel.php index 8376013fac7..67c47c30c88 100644 --- a/src/Config/Level/DeadCodeLevel.php +++ b/src/Config/Level/DeadCodeLevel.php @@ -40,7 +40,7 @@ use Rector\DeadCode\Rector\FunctionLike\RemoveDeadReturnRector; use Rector\DeadCode\Rector\If_\ReduceAlwaysFalseIfOrRector; use Rector\DeadCode\Rector\If_\RemoveAlwaysTrueIfConditionRector; -use Rector\DeadCode\Rector\If_\RemoveDeadIfBlocksRector; +use Rector\DeadCode\Rector\If_\RemoveDeadIfBlockRector; use Rector\DeadCode\Rector\If_\RemoveDeadInstanceOfRector; use Rector\DeadCode\Rector\If_\RemoveTypedPropertyDeadInstanceOfRector; use Rector\DeadCode\Rector\If_\RemoveUnusedNonEmptyArrayBeforeForeachRector; @@ -125,7 +125,7 @@ final class DeadCodeLevel RemoveDeadCatchRector::class, RemoveDeadTryCatchRector::class, - RemoveDeadIfBlocksRector::class, + RemoveDeadIfBlockRector::class, RemoveDeadIfForeachForRector::class, RemoveConditionExactReturnRector::class, RemoveDeadStmtRector::class,