From bf3031ba590f4108afd262e98e31c962ce5953dd Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 24 Sep 2025 10:17:17 +0700 Subject: [PATCH 1/2] [TypeDeclarationDocblocks] Skip first class callable on AddReturnDocblockForJsonArrayRector --- .../Fixture/skip_first_class_callable.php.inc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector/Fixture/skip_first_class_callable.php.inc diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector/Fixture/skip_first_class_callable.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector/Fixture/skip_first_class_callable.php.inc new file mode 100644 index 00000000000..c1b34bc4342 --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector/Fixture/skip_first_class_callable.php.inc @@ -0,0 +1,15 @@ + \ No newline at end of file From 13decf8c3017ba12fbf1f83f76341161105a66f2 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 24 Sep 2025 10:18:30 +0700 Subject: [PATCH 2/2] Fix --- .../ClassMethod/AddReturnDocblockForJsonArrayRector.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector.php index 746ebfb34dc..e88d174cc77 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockForJsonArrayRector.php @@ -135,6 +135,10 @@ private function isJsonDecodeToArray(Expr $expr): bool return false; } + if ($expr->isFirstClassCallable()) { + return false; + } + if (count($expr->getArgs()) !== 2) { return false; } @@ -152,6 +156,10 @@ private function isJsonDecodeToArray(Expr $expr): bool return false; } + if ($expr->isFirstClassCallable()) { + return false; + } + if (count($expr->getArgs()) !== 2) { return false; }