diff --git a/rules-tests/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector/Fixture/skip_with_property_fetch.php.inc b/rules-tests/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector/Fixture/skip_with_property_fetch.php.inc new file mode 100644 index 00000000000..3b489ac015e --- /dev/null +++ b/rules-tests/CodeQuality/Rector/ClassMethod/InlineArrayReturnAssignRector/Fixture/skip_with_property_fetch.php.inc @@ -0,0 +1,16 @@ +person['name'] = 'Back'; + + return $person; + } +} diff --git a/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php b/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php index 4c9d9b2cb65..24054feae2b 100644 --- a/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php +++ b/rules/CodeQuality/NodeAnalyzer/VariableDimFetchAssignResolver.php @@ -44,7 +44,7 @@ public function resolveFromStmtsAndVariable(array $stmts, Variable $variable): a $assign = $stmtExpr; $keyExpr = $this->matchKeyOnArrayDimFetchOfVariable($assign, $variable); - if ($keyExpr instanceof ArrayDimFetch) { + if ($assign->var instanceof ArrayDimFetch && $assign->var->var instanceof ArrayDimFetch) { return []; } @@ -67,7 +67,7 @@ private function matchKeyOnArrayDimFetchOfVariable(Assign $assign, Variable $var } $arrayDimFetch = $assign->var; - if ($arrayDimFetch->var instanceof Variable && ! $this->nodeComparator->areNodesEqual($arrayDimFetch->var, $variable)) { + if (! $this->nodeComparator->areNodesEqual($arrayDimFetch->var, $variable)) { return null; } @@ -80,10 +80,6 @@ private function matchKeyOnArrayDimFetchOfVariable(Assign $assign, Variable $var return null; } - if ($arrayDimFetch->var instanceof ArrayDimFetch) { - return $arrayDimFetch->var; - } - return $arrayDimFetch->dim; }