From e08a8accb27138efc73180f3659b12a48ec842f8 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 12 Sep 2025 18:38:45 +0700 Subject: [PATCH 1/3] [TypeDeclarationDocblocks] Skip class name string return on AddReturnDocblockForCommonObjectDenominatorRector --- .../Fixture/skip_class_name_string.php.inc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector/Fixture/skip_class_name_string.php.inc diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector/Fixture/skip_class_name_string.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector/Fixture/skip_class_name_string.php.inc new file mode 100644 index 00000000000..b1390230967 --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector/Fixture/skip_class_name_string.php.inc @@ -0,0 +1,15 @@ + Date: Fri, 12 Sep 2025 18:41:13 +0700 Subject: [PATCH 2/3] Fix --- .../AddReturnDocblockForCommonObjectDenominatorRector.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php index 150d923c587..fd6d38c1278 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php @@ -139,6 +139,13 @@ public function refactor(Node $node): ?Node return null; } + /** + * string class as Foo::class + */ + if ($valueType->isString()->yes()) { + return null; + } + $referencedClasses = array_merge($referencedClasses, $valueType->getReferencedClasses()); } From 52ed0cc51f17beccf02c5f107a751a72d8141bda Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Fri, 12 Sep 2025 18:43:51 +0700 Subject: [PATCH 3/3] use isObject() check --- ...ReturnDocblockForCommonObjectDenominatorRector.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php index fd6d38c1278..47073b89061 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForCommonObjectDenominatorRector.php @@ -133,16 +133,9 @@ public function refactor(Node $node): ?Node } /** - * nested structure + * not an object, can be nested array, or string class as Foo::class */ - if ($valueType->isArray()->yes()) { - return null; - } - - /** - * string class as Foo::class - */ - if ($valueType->isString()->yes()) { + if (! $valueType->isObject()->yes()) { return null; }