diff --git a/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php b/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php index 1846bc9f658..05ed9f8dbae 100644 --- a/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php +++ b/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php @@ -82,7 +82,21 @@ public function refactor(Node $node): ?Node { $hasChanged = false; + $constantNames = []; + foreach ($node->getConstants() as $classConst) { + if ($classConst->consts === []) { + continue; + } + + $constantNames[strtolower($classConst->consts[0]->name->toString())] = true; + } + foreach ($this->classConstantVisibilityChanges as $classConstantVisibilityChange) { + // cheap name check before the expensive type resolution below + if (! isset($constantNames[strtolower($classConstantVisibilityChange->getConstant())])) { + continue; + } + if (! $this->isObjectType($node, $classConstantVisibilityChange->getObjectType())) { continue; }