diff --git a/rules/solid/src/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php b/rules/solid/src/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php index 208c6f4be91..cdc503c63eb 100644 --- a/rules/solid/src/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php +++ b/rules/solid/src/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector.php @@ -105,7 +105,9 @@ CODE_SAMPLE /** @var Assign $assign */ $assign = $this->stmtsManipulator->getUnwrappedLastStmt($node->stmts); - $node->stmts[$lastIfStmtKey] = new Return_($assign->expr); + $return = new Return_($assign->expr); + $this->copyCommentIfExists($assign, $return); + $node->stmts[$lastIfStmtKey] = $return; /** @var Assign $assign */ $assign = $this->stmtsManipulator->getUnwrappedLastStmt($node->else->stmts); @@ -113,7 +115,10 @@ CODE_SAMPLE $lastElseStmtKey = array_key_last($node->else->stmts); $elseStmts = $node->else->stmts; - $elseStmts[$lastElseStmtKey] = new Return_($assign->expr); + + $return = new Return_($assign->expr); + $this->copyCommentIfExists($assign, $return); + $elseStmts[$lastElseStmtKey] = $return; $node->else = null; $this->addNodesAfterNode($elseStmts, $node); @@ -122,4 +127,10 @@ CODE_SAMPLE return $node; } + + private function copyCommentIfExists(Node $from, Node $to): void + { + $nodeComments = $from->getAttribute(AttributeKey::COMMENTS); + $to->setAttribute(AttributeKey::COMMENTS, $nodeComments); + } } diff --git a/rules/solid/tests/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector/Fixture/lost_comment.php.inc b/rules/solid/tests/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector/Fixture/lost_comment.php.inc new file mode 100644 index 00000000000..7dbfdcbb3b6 --- /dev/null +++ b/rules/solid/tests/Rector/If_/ChangeIfElseValueAssignToEarlyReturnRector/Fixture/lost_comment.php.inc @@ -0,0 +1,41 @@ + +----- +