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 deleted file mode 100644 index 4beb2996db5..00000000000 --- a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/return_empty.php.inc +++ /dev/null @@ -1,30 +0,0 @@ - ------ - diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/skip_return_empty.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/skip_return_empty.php.inc new file mode 100644 index 00000000000..8f37bb8e9ff --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/DocblockReturnArrayFromDirectArrayInstanceRector/Fixture/skip_return_empty.php.inc @@ -0,0 +1,11 @@ +shouldSkipReturnMixedAndEmptyArray($phpDocInfo, $soleReturn->expr)) { + // skip empty array; @return array{} is the narrowest array type and breaks any child override that returns a filled array + if ($soleReturn->expr->items === []) { return null; } @@ -132,19 +130,4 @@ public function refactor(Node $node): ?Node return $node; } - - private function shouldSkipReturnMixedAndEmptyArray(PhpDocInfo $phpDocInfo, Array_ $array): bool - { - if ($array->items !== []) { - return false; - } - - $returnTagValueNode = $phpDocInfo->getReturnTagValue(); - if (! $returnTagValueNode instanceof ReturnTagValueNode) { - return false; - } - - // better than array{} - return $returnTagValueNode->type instanceof ArrayTypeNode; - } }