From 32165444b1e0139e9c2245b964f47c584f2795e3 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 11 May 2022 14:07:42 +0700 Subject: [PATCH] [Php52] Ensure return $node only when node changed on ContinueToBreakInSwitchRector (#2283) * [Php52] Ensure return $node only when node changed on ContinueToBreakInSwitchRector * [Php52] Ensure return $node only when node changed on ContinueToBreakInSwitchRector * [Php52] Ensure return $node only when node changed on ContinueToBreakInSwitchRector * [Php52] Ensure return $node only when node changed on ContinueToBreakInSwitchRector * [Php52] Ensure return $node only when node changed on ContinueToBreakInSwitchRector --- .../Switch_/ContinueToBreakInSwitchRector.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/rules/Php52/Rector/Switch_/ContinueToBreakInSwitchRector.php b/rules/Php52/Rector/Switch_/ContinueToBreakInSwitchRector.php index 86d3786cfa3..9668a8fb658 100644 --- a/rules/Php52/Rector/Switch_/ContinueToBreakInSwitchRector.php +++ b/rules/Php52/Rector/Switch_/ContinueToBreakInSwitchRector.php @@ -75,18 +75,29 @@ CODE_SAMPLE /** * @param Switch_ $node */ - public function refactor(Node $node): Switch_ + public function refactor(Node $node): ?Switch_ { + $hasChanged = false; foreach ($node->cases as $case) { foreach ($case->stmts as $key => $caseStmt) { if (! $caseStmt instanceof Continue_) { continue; } - $case->stmts[$key] = $this->processContinueStatement($caseStmt); + $newStmt = $this->processContinueStatement($caseStmt); + if ($newStmt === $caseStmt) { + continue; + } + + $case->stmts[$key] = $newStmt; + $hasChanged = true; } } + if (! $hasChanged) { + return null; + } + return $node; }