From 1ed5588311cb5341242cef38b02f8de782240219 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 15 Sep 2025 06:31:41 +0700 Subject: [PATCH 1/3] [CodeQuality] Skip dynamic key on InlineArrayReturnAssignRector --- .../Fixture/skip_dynamic_key.php.inc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 rules-tests/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector/Fixture/skip_dynamic_key.php.inc diff --git a/rules-tests/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector/Fixture/skip_dynamic_key.php.inc b/rules-tests/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector/Fixture/skip_dynamic_key.php.inc new file mode 100644 index 00000000000..7f68f60c4e6 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector/Fixture/skip_dynamic_key.php.inc @@ -0,0 +1,14 @@ + Date: Mon, 15 Sep 2025 06:34:36 +0700 Subject: [PATCH 2/3] Fix --- .../NodeAnalyzer/VariableDimFetchAssignResolver.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php b/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php index de83d55ca87..7c3afedf383 100644 --- a/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php +++ b/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php @@ -11,11 +11,13 @@ use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; use Rector\CodeQuality\ValueObject\KeyAndExpr; +use Rector\NodeAnalyzer\ExprAnalyzer; use Rector\PhpParser\Node\Value\ValueResolver; final readonly class VariableDimFetchAssignResolver { public function __construct( + private ExprAnalyzer $exprAnalyzer, private ValueResolver $valueResolver ) { } @@ -54,6 +56,10 @@ public function resolveFromStmtsAndVariable(array $stmts, ?Assign $emptyArrayAss $arrayDimFetch = $assign->var; while ($arrayDimFetch instanceof ArrayDimFetch) { + if ($arrayDimFetch->dim instanceof Expr && $this->exprAnalyzer->isDynamicExpr($arrayDimFetch->dim)) { + return []; + } + $dimValues[] = $arrayDimFetch->dim instanceof Expr ? $this->valueResolver->getValue( $arrayDimFetch->dim ) : $key; From fcf87bf8848e5c245624baea236d2a7799464238 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sun, 14 Sep 2025 23:35:08 +0000 Subject: [PATCH 3/3] [ci-review] Rector Rectify --- .../Rector/ClassMethod/InlineArrayReturnAssignRector.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php b/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php index cd44767737f..a1a823fa318 100644 --- a/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php +++ b/rules/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector.php @@ -107,7 +107,7 @@ public function refactor(Node $node): ?Node } // init maybe from before if - if ($emptyArrayAssign === null && ! $node instanceof FunctionLike) { + if (!$emptyArrayAssign instanceof Assign && ! $node instanceof FunctionLike) { return null; }