From 388763c1b3151fbc9f2f934b349d9a7959d5d175 Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Wed, 10 May 2023 16:33:30 +0700 Subject: [PATCH] [TypeDeclaration] Skip Arg unpack on AddMethodCallBasedStrictParamTypeRector (#3787) --- .../Fixture/skip_arg_unpack.php.inc | 18 ++++++++++++++++++ .../NodeAnalyzer/CallTypesResolver.php | 4 ++++ 2 files changed, 22 insertions(+) create mode 100644 rules-tests/TypeDeclaration/Rector/ClassMethod/AddMethodCallBasedStrictParamTypeRector/Fixture/skip_arg_unpack.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/ClassMethod/AddMethodCallBasedStrictParamTypeRector/Fixture/skip_arg_unpack.php.inc b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddMethodCallBasedStrictParamTypeRector/Fixture/skip_arg_unpack.php.inc new file mode 100644 index 00000000000..9c471ec777b --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ClassMethod/AddMethodCallBasedStrictParamTypeRector/Fixture/skip_arg_unpack.php.inc @@ -0,0 +1,18 @@ + $list + */ + public function __construct(array $list) + { + $this->process(...$list); + } + + private function process(int ...$variadic): void + { + } +} diff --git a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php index 853635b91e6..e839695fc85 100644 --- a/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php +++ b/rules/TypeDeclaration/NodeAnalyzer/CallTypesResolver.php @@ -46,6 +46,10 @@ public function resolveStrictTypesFromCalls(array $calls): array continue; } + if ($arg->unpack) { + continue; + } + $staticTypesByArgumentPosition[$position][] = $this->resolveStrictArgValueType($arg); } }