From 4c505f97560be087fd9d6ea691fb66ff7532cce8 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 22 Dec 2025 21:33:53 +0700 Subject: [PATCH 1/2] Test PHPStan 2.1.x-dev to remove tweak AlwaysRememberedExpr on Printer --- composer.json | 2 +- .../Printer/BetterStandardPrinter.php | 18 ------------------ 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/composer.json b/composer.json index ce878e83d21..adaddbf006f 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "nikic/php-parser": "^5.7", "ondram/ci-detector": "^4.2", "phpstan/phpdoc-parser": "^2.3", - "phpstan/phpstan": "^2.1.33", + "phpstan/phpstan": "2.1.x-dev", "react/event-loop": "^1.6", "react/promise": "^3.3", "react/socket": "^1.17", diff --git a/src/PhpParser/Printer/BetterStandardPrinter.php b/src/PhpParser/Printer/BetterStandardPrinter.php index 8f9d94f63b5..9acc42eb4ae 100644 --- a/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/src/PhpParser/Printer/BetterStandardPrinter.php @@ -29,7 +29,6 @@ use PhpParser\Node\Stmt\Nop; use PhpParser\PrettyPrinter\Standard; use PhpParser\Token; -use PHPStan\Node\Expr\AlwaysRememberedExpr; use Rector\Configuration\Option; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\NodeAnalyzer\ExprAnalyzer; @@ -128,23 +127,6 @@ protected function p( int $lhsPrecedence = self::MAX_PRECEDENCE, bool $parentFormatPreserved = false ): string { - // handle already AlwaysRememberedExpr - // @see https://github.com/rectorphp/rector/issues/8815#issuecomment-2503453191 - if ($node instanceof AlwaysRememberedExpr) { - return $this->p($node->getExpr(), $precedence, $lhsPrecedence, $parentFormatPreserved); - } - - // handle overlapped origNode is Match_ and its subnodes still have AlwaysRememberedExpr - $originalNode = $node->getAttribute(AttributeKey::ORIGINAL_NODE); - if ($originalNode instanceof Match_) { - $subNodeNames = $node->getSubNodeNames(); - foreach ($subNodeNames as $subNodeName) { - while ($originalNode->{$subNodeName} instanceof AlwaysRememberedExpr) { - $originalNode->{$subNodeName} = $originalNode->{$subNodeName}->getExpr(); - } - } - } - $this->wrapBinaryOpWithBrackets($node); $content = parent::p($node, $precedence, $lhsPrecedence, $parentFormatPreserved); From 7c8e5f5bc9645373349ff50e9791cc500315e82c Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 22 Dec 2025 14:36:17 +0000 Subject: [PATCH 2/2] [ci-review] Rector Rectify --- src/PhpParser/Printer/BetterStandardPrinter.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/PhpParser/Printer/BetterStandardPrinter.php b/src/PhpParser/Printer/BetterStandardPrinter.php index 9acc42eb4ae..19db7fb5e23 100644 --- a/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/src/PhpParser/Printer/BetterStandardPrinter.php @@ -17,7 +17,6 @@ use PhpParser\Node\Expr\BinaryOp\Pipe; use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\Instanceof_; -use PhpParser\Node\Expr\Match_; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\Ternary; use PhpParser\Node\Expr\Yield_;