From 810e4187da780b9e54c3518b192241229bdc1ab1 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 8 Oct 2025 07:12:55 +0700 Subject: [PATCH 1/3] [Renaming] Allow self/static on RenamePropertyRector --- .../Fixture/rename_self_static.php.inc | 31 +++++++++++++++++++ .../config/configured_rule.php | 5 +++ 2 files changed, 36 insertions(+) create mode 100644 rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/Fixture/rename_self_static.php.inc diff --git a/rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/Fixture/rename_self_static.php.inc b/rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/Fixture/rename_self_static.php.inc new file mode 100644 index 00000000000..51b49d428cd --- /dev/null +++ b/rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/Fixture/rename_self_static.php.inc @@ -0,0 +1,31 @@ + +----- + diff --git a/rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/config/configured_rule.php b/rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/config/configured_rule.php index f3a3142b00b..c49d413530f 100644 --- a/rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/config/configured_rule.php +++ b/rules-tests/Renaming/Rector/PropertyFetch/RenamePropertyRector/config/configured_rule.php @@ -34,5 +34,10 @@ 'oldProperty', 'newProperty' ), + new RenameProperty( + 'Rector\Tests\Renaming\Rector\PropertyFetch\RenamePropertyRector\Fixture\MyClass', + '_config', + 'config' + ), ]); }; From 725022f4ea8b3cd8093cc114e2859c5e808aa7b0 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 8 Oct 2025 07:13:45 +0700 Subject: [PATCH 2/3] fix --- .../Rector/PropertyFetch/RenamePropertyRector.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php b/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php index 9cead89df84..c4a260f027e 100644 --- a/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php +++ b/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php @@ -6,6 +6,7 @@ use PhpParser\Node; use PhpParser\Node\Expr\PropertyFetch; +use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\Property; @@ -46,11 +47,11 @@ public function getRuleDefinition(): RuleDefinition */ public function getNodeTypes(): array { - return [PropertyFetch::class, ClassLike::class]; + return [PropertyFetch::class, StaticPropertyFetch::class, ClassLike::class]; } /** - * @param PropertyFetch|ClassLike $node + * @param PropertyFetch|StaticPropertyFetch|ClassLike $node */ public function refactor(Node $node): ?Node { @@ -110,7 +111,7 @@ private function renameProperty(ClassLike $classLike, RenameProperty $renameProp $property->props[0]->name = new VarLikeIdentifier($newProperty); } - private function refactorPropertyFetch(PropertyFetch $propertyFetch): ?PropertyFetch + private function refactorPropertyFetch(PropertyFetch|StaticPropertyFetch $propertyFetch): null|PropertyFetch|StaticPropertyFetch { foreach ($this->renamedProperties as $renamedProperty) { $oldProperty = $renamedProperty->getOldProperty(); @@ -118,11 +119,12 @@ private function refactorPropertyFetch(PropertyFetch $propertyFetch): ?PropertyF continue; } - if (! $this->isObjectType($propertyFetch->var, $renamedProperty->getObjectType())) { + $varPropertyFetch = $propertyFetch instanceof PropertyFetch ? $propertyFetch->var : $propertyFetch->class; + if (! $this->isObjectType($varPropertyFetch, $renamedProperty->getObjectType())) { continue; } - $propertyFetch->name = new Identifier($renamedProperty->getNewProperty()); + $propertyFetch->name->name = $renamedProperty->getNewProperty(); return $propertyFetch; } From 80b1e19cc32ff992cda516dc59522bc0a65fb0dd Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 8 Oct 2025 07:15:23 +0700 Subject: [PATCH 3/3] fix --- rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php b/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php index c4a260f027e..1071f22eb86 100644 --- a/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php +++ b/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php @@ -124,7 +124,9 @@ private function refactorPropertyFetch(PropertyFetch|StaticPropertyFetch $proper continue; } - $propertyFetch->name->name = $renamedProperty->getNewProperty(); + $propertyFetch->name = $propertyFetch instanceof PropertyFetch + ? new Identifier($renamedProperty->getNewProperty()) + : new VarLikeIdentifier($renamedProperty->getNewProperty()); return $propertyFetch; }