diff --git a/rules/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector.php b/rules/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector.php index 8ef89b529e6..c1aa2aacb4a 100644 --- a/rules/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector.php +++ b/rules/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector.php @@ -5,6 +5,7 @@ namespace Rector\TypeDeclaration\Rector\ArrowFunction; use PhpParser\Node; +use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\ArrowFunction; use PHPStan\Type\MixedType; use PHPStan\Type\NullType; @@ -58,7 +59,10 @@ public function refactor(Node $node): ?Node return null; } - $type = $this->nodeTypeResolver->getNativeType($node->expr); + // to allow array shape + $type = $node->expr instanceof ArrayDimFetch + ? $this->getType($node->expr) + : $this->nodeTypeResolver->getNativeType($node->expr); // not valid to add explicit type in PHP if ($type->isVoid()->yes()) {