From 7d16e3d57e8942a535551e9c7d8725fc91329993 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 28 Apr 2023 17:26:54 +0700 Subject: [PATCH] [Renaming] Improve performance of RenamePropertyRector (#3698) * [Renaming] Improve performance of RenamePropertyRector * early null assign * [ci-review] Rector Rectify --------- Co-authored-by: GitHub Action --- .../Renaming/Rector/PropertyFetch/RenamePropertyRector.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php b/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php index 3955fdbf0bd..2631b98b870 100644 --- a/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php +++ b/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php @@ -4,6 +4,7 @@ namespace Rector\Renaming\Rector\PropertyFetch; +use PHPStan\Type\Type; use PhpParser\Node; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Identifier; @@ -113,6 +114,7 @@ private function renameProperty(ClassLike $classLike, RenameProperty $renameProp private function processFromPropertyFetch(PropertyFetch $propertyFetch): ?PropertyFetch { $class = $this->betterNodeFinder->findParentType($propertyFetch, Class_::class); + $nodeVarType = null; foreach ($this->renamedProperties as $renamedProperty) { $oldProperty = $renamedProperty->getOldProperty(); @@ -123,8 +125,11 @@ private function processFromPropertyFetch(PropertyFetch $propertyFetch): ?Proper if (! $this->isObjectType($propertyFetch->var, $renamedProperty->getObjectType())) { continue; } + + if (! $nodeVarType instanceof Type) { + $nodeVarType = $this->nodeTypeResolver->getType($propertyFetch->var); + } - $nodeVarType = $this->nodeTypeResolver->getType($propertyFetch->var); if ($nodeVarType instanceof ThisType && $class instanceof ClassLike) { $this->renameProperty($class, $renamedProperty); }