diff --git a/rules-tests/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector/Fixture/skip_imported_class_const_already_replaced.php.inc b/rules-tests/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector/Fixture/skip_imported_class_const_already_replaced.php.inc new file mode 100644 index 00000000000..3a7de21b915 --- /dev/null +++ b/rules-tests/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector/Fixture/skip_imported_class_const_already_replaced.php.inc @@ -0,0 +1,14 @@ +sortBy(SomeSortableObject::SORT_ORDER_DESC); + } +} diff --git a/rules-tests/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector/config/configured_rule.php b/rules-tests/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector/config/configured_rule.php index 01cac798d2b..ec9981d829a 100644 --- a/rules-tests/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector/config/configured_rule.php +++ b/rules-tests/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector/config/configured_rule.php @@ -94,5 +94,13 @@ 'ASC', 'self::SORT_ORDER_DESC' ), + + new ReplaceArgumentDefaultValue( + SomeSortableObject::class, + 'sortBy', + 0, + 'DESC', + SomeSortableObject::class . '::SORT_ORDER_DESC' + ), ]); }; diff --git a/rules/Arguments/ArgumentDefaultValueReplacer.php b/rules/Arguments/ArgumentDefaultValueReplacer.php index d43128aa991..16527bc1502 100644 --- a/rules/Arguments/ArgumentDefaultValueReplacer.php +++ b/rules/Arguments/ArgumentDefaultValueReplacer.php @@ -165,7 +165,6 @@ private function processArgs( $normalizedValueAfter = $this->normalizeValue($replaceArgumentDefaultValue->getValueAfter()); if ($particularArg->value instanceof ClassConstFetch && $particularArg->value->class instanceof Name - && $particularArg->value->class->isSpecialClassName() && $normalizedValueAfter instanceof ClassConstFetch && is_string($replaceArgumentDefaultValue->getValueAfter()) && str_contains($replaceArgumentDefaultValue->getValueAfter(), '::')) { diff --git a/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php b/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php index 2159a2a5826..c76b245d6f7 100644 --- a/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php +++ b/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php @@ -105,7 +105,7 @@ public function refactor(Node $node): MethodCall|StaticCall|ClassMethod|New_|nul $currentNode, $replaceArgumentDefaultValue ); - if ($replacedNode !== null && $replacedNode !== $currentNode) { + if ($replacedNode !== null) { $currentNode = $replacedNode; $hasChanged = true; } @@ -142,7 +142,7 @@ private function refactorNew(New_ $new): ?New_ $currentNode, $replaceArgumentDefaultValue ); - if ($replacedNode !== null && $replacedNode !== $currentNode) { + if ($replacedNode !== null) { $currentNode = $replacedNode; $hasChanged = true; }