From 91a5d561d76fc33c10c0f54205e0ae86c2ac913c Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 29 Sep 2025 03:08:14 +0700 Subject: [PATCH 1/2] [TypeDeclarationDocblocks] Skip all together if one of calls is first class callable --- .../skip_with_first_class_callable.php.inc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 rules-tests/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector/Fixture/skip_with_first_class_callable.php.inc diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector/Fixture/skip_with_first_class_callable.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector/Fixture/skip_with_first_class_callable.php.inc new file mode 100644 index 00000000000..7262b98e869 --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector/Fixture/skip_with_first_class_callable.php.inc @@ -0,0 +1,17 @@ +run(['item1', 'item2']); + + $this->run(...)([1, 2]); + } + + private function run(array $items) + { + } +} From d4104dc801be6ff0ebfb5b9fffddb6e592456644 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 29 Sep 2025 03:10:38 +0700 Subject: [PATCH 2/2] Fix --- rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php index d8a120838c0..6747d289c61 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php +++ b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php @@ -67,7 +67,7 @@ public function resolveTypesFromCalls(array $calls): array foreach ($calls as $call) { foreach ($call->args as $position => $arg) { if ($this->shouldSkipArg($arg)) { - continue; + return []; } /** @var Arg $arg */