From 9a3e5f2e93f43fd0f76f0c3b9af40a5df0e10937 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 23 Sep 2025 18:35:06 +0200 Subject: [PATCH] avoid better type override in AddReturnArrayDocblockBasedOnArrayMapRector --- .../Fixture/override_mixyed.php.inc | 39 +++++++++++++++++++ .../Fixture/skip_override.php.inc | 17 ++++++++ ...turnArrayDocblockBasedOnArrayMapRector.php | 7 +++- 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/override_mixyed.php.inc create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/skip_override.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/override_mixyed.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/override_mixyed.php.inc new file mode 100644 index 00000000000..caa3455e01e --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/override_mixyed.php.inc @@ -0,0 +1,39 @@ + +----- + diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/skip_override.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/skip_override.php.inc new file mode 100644 index 00000000000..ebf794826a5 --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddReturnArrayDocblockBasedOnArrayMapRector/Fixture/skip_override.php.inc @@ -0,0 +1,17 @@ +phpDocInfoFactory->createFromNodeOrEmpty($node); $returnOriginalType = $functionLikePhpDocInfo->getReturnType(); - if ($returnOriginalType instanceof IntersectionType && $returnOriginalType->isArray()->yes()) { + + if ($returnOriginalType instanceof ArrayType && ! $returnOriginalType->getItemType() instanceof MixedType) { + return null; + } + + if ($returnOriginalType instanceof IntersectionType) { return null; }