diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/return_empty.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/return_empty.php.inc new file mode 100644 index 00000000000..89904edff8c --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/return_empty.php.inc @@ -0,0 +1,30 @@ + +----- + + */ + public function run(): array + { + return []; + } +} + +?> \ No newline at end of file diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php index f621c68b5c4..5230c2b6140 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector.php @@ -17,6 +17,7 @@ use PHPStan\Type\FloatType; use PHPStan\Type\IntegerType; use PHPStan\Type\MixedType; +use PHPStan\Type\NeverType; use PHPStan\Type\StringType; use PHPStan\Type\Type; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; @@ -152,6 +153,10 @@ private function createGenericArrayTypeFromConstantArrayType(ConstantArrayType $ { $genericKeyType = $this->constantToGenericType($constantArrayType->getKeyType()); + if ($constantArrayType->getItemType() instanceof NeverType) { + $genericKeyType = new IntegerType(); + } + $itemType = $constantArrayType->getItemType(); if ($itemType instanceof ConstantArrayType) { $genericItemType = $this->createGenericArrayTypeFromConstantArrayType($itemType);