From 24ca9834332cb9adb22c5dc15be71824b8413176 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 10 Oct 2026 10:59:02 +0200 Subject: [PATCH] [perf] Skip scope fetch in RemoveUnusedNonEmptyArrayBeforeForeachRector unless if-with-only-foreach --- .../If_/RemoveUnusedNonEmptyArrayBeforeForeachRector.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rules/DeadCode/Rector/If_/RemoveUnusedNonEmptyArrayBeforeForeachRector.php b/rules/DeadCode/Rector/If_/RemoveUnusedNonEmptyArrayBeforeForeachRector.php index a6eab21fcf7..cb423a5b2af 100644 --- a/rules/DeadCode/Rector/If_/RemoveUnusedNonEmptyArrayBeforeForeachRector.php +++ b/rules/DeadCode/Rector/If_/RemoveUnusedNonEmptyArrayBeforeForeachRector.php @@ -93,6 +93,11 @@ public function getNodeTypes(): array public function refactor(Node $node): Node|null { if ($node instanceof If_) { + // cheap structural bail before pulling the scope + if (! $this->ifManipulator->isIfWithOnly($node, Foreach_::class)) { + return null; + } + $scope = ScopeFetcher::fetch($node); return $this->refactorIf($node, $scope); }