From 3dbf001e3bd5d3bf1d005c210edf3ad9f5f0b8b8 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 11 Oct 2025 11:09:58 +0700 Subject: [PATCH 1/2] [CodeQuality] Skip non-variable fetch on VariableConstFetchToClassConstFetchRector as may cause side effect --- .../Fixture/skip_non_variable.php.inc | 20 +++++++++++++++++++ .../Source/ClassWithSideEffect.php | 15 ++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Fixture/skip_non_variable.php.inc create mode 100644 rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Source/ClassWithSideEffect.php diff --git a/rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Fixture/skip_non_variable.php.inc b/rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Fixture/skip_non_variable.php.inc new file mode 100644 index 00000000000..764aaf01cb1 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Fixture/skip_non_variable.php.inc @@ -0,0 +1,20 @@ +sideEffect()::SOME_VALUE; + } +} diff --git a/rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Source/ClassWithSideEffect.php b/rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Source/ClassWithSideEffect.php new file mode 100644 index 00000000000..4fe2635d834 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector/Source/ClassWithSideEffect.php @@ -0,0 +1,15 @@ + Date: Sat, 11 Oct 2025 11:10:56 +0700 Subject: [PATCH 2/2] Fix --- .../VariableConstFetchToClassConstFetchRector.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rules/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector.php b/rules/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector.php index 4e06232d457..40ed1255642 100644 --- a/rules/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector.php +++ b/rules/CodeQuality/Rector/ClassConstFetch/VariableConstFetchToClassConstFetchRector.php @@ -5,8 +5,8 @@ namespace Rector\CodeQuality\Rector\ClassConstFetch; use PhpParser\Node; -use PhpParser\Node\Expr; use PhpParser\Node\Expr\ClassConstFetch; +use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\Name\FullyQualified; use PHPStan\Type\ObjectType; @@ -62,7 +62,7 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?ClassConstFetch { - if (! $node->class instanceof Expr) { + if (! $node->class instanceof Variable) { return null; }