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 @@ +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; 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; }