From ad118434b136078f851240cc91f6ac9fde1e52fb Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 7 Feb 2026 20:45:10 +0700 Subject: [PATCH 1/3] [CodeQuality] Skip first class callable on DecorateWillReturnMapWithExpectsMockRector --- .../Fixture/skip_first_class_callable.php.inc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 rules-tests/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector/Fixture/skip_first_class_callable.php.inc diff --git a/rules-tests/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector/Fixture/skip_first_class_callable.php.inc b/rules-tests/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector/Fixture/skip_first_class_callable.php.inc new file mode 100644 index 00000000..e4d5f4fb --- /dev/null +++ b/rules-tests/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector/Fixture/skip_first_class_callable.php.inc @@ -0,0 +1,16 @@ +createMock(\stdClass::class); + $someMock->method('some')->willReturnMap(...); + } +} + +?> \ No newline at end of file From 1591bd7a958923e154ac82fdc1f84aed09af7e87 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 7 Feb 2026 20:46:31 +0700 Subject: [PATCH 2/3] Fix --- .../DecorateWillReturnMapWithExpectsMockRector.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php b/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php index d1b03f21..becf78b3 100644 --- a/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php +++ b/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php @@ -108,8 +108,12 @@ public function refactor(Node $node) return null; } + if ($methodCall->isFirstClassCallable()) { + return null; + } + // count values in will map arg - $willReturnMapArg = $methodCall->getArgs()[0]; + $willReturnMapArg = $methodCall->getArgs()[0] ?? null; if (! $willReturnMapArg->value instanceof Array_) { return null; } From 82a62e915de92f646678c2fa9cc4a0e77e505110 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Sat, 7 Feb 2026 20:47:46 +0700 Subject: [PATCH 3/3] Fix --- .../Expression/DecorateWillReturnMapWithExpectsMockRector.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php b/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php index becf78b3..21df3c81 100644 --- a/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php +++ b/rules/CodeQuality/Rector/Expression/DecorateWillReturnMapWithExpectsMockRector.php @@ -114,6 +114,10 @@ public function refactor(Node $node) // count values in will map arg $willReturnMapArg = $methodCall->getArgs()[0] ?? null; + if (! $willReturnMapArg instanceof Arg) { + return null; + } + if (! $willReturnMapArg->value instanceof Array_) { return null; }