From 489d95e83b7d4434337f3df254cc87a58f6e29f6 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 4 Oct 2023 11:17:20 +0000 Subject: [PATCH] Updated Rector to commit b491f42c2acd125671c7908a3dacd86316048809 https://github.com/rectorphp/rector-src/commit/b491f42c2acd125671c7908a3dacd86316048809 [Php80] Remove unnecessary re-create default value param from ConstFetch on AddParamBasedOnParentClassMethodRector, set origNode = null instead (#5112) --- ...AddParamBasedOnParentClassMethodRector.php | 27 +++++-------------- src/Application/VersionResolver.php | 4 +-- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php b/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php index 2dc33f3e18e1..2eebb82fdfe6 100644 --- a/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php +++ b/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php @@ -7,15 +7,10 @@ use PhpParser\Node; use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; -use PhpParser\Node\Expr\Array_; -use PhpParser\Node\Expr\ConstFetch; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Param; -use PhpParser\Node\Scalar\DNumber; -use PhpParser\Node\Scalar\LNumber; -use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Reflection\MethodReflection; use Rector\Core\PhpParser\AstResolver; @@ -204,21 +199,13 @@ private function processReplaceClassMethodParams(ClassMethod $node, ClassMethod } private function resolveParamDefault(Expr $expr) : Expr { - // re-create to avoid TokenStream error - if ($expr instanceof String_) { - return new String_($expr->value, [AttributeKey::KIND => $expr->getAttribute(AttributeKey::KIND)]); - } - if ($expr instanceof LNumber) { - return new LNumber($expr->value); - } - if ($expr instanceof DNumber) { - return new DNumber($expr->value); - } - if ($expr instanceof Array_ && $expr->items === []) { - return new Array_($expr->items, [AttributeKey::KIND => $expr->getAttribute(AttributeKey::KIND)]); - } - $printParamDefault = $this->betterStandardPrinter->print($expr); - return new ConstFetch(new Name($printParamDefault)); + // reset original node, to allow the printer to re-use the expr + $expr->setAttribute(AttributeKey::ORIGINAL_NODE, null); + $this->traverseNodesWithCallable($expr, static function (Node $node) : Node { + $node->setAttribute(AttributeKey::ORIGINAL_NODE, null); + return $node; + }); + return $expr; } /** * @return null|\PhpParser\Node\Identifier|\PhpParser\Node\Name|\PhpParser\Node\ComplexType diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 2d0ac032291c..2211e754624f 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '4e56b7c4a9fa9747cb12025c94e07b85a30155bc'; + public const PACKAGE_VERSION = 'b491f42c2acd125671c7908a3dacd86316048809'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-10-04 15:42:44'; + public const RELEASE_DATE = '2023-10-04 18:13:54'; /** * @var int */