diff --git a/rules-tests/Php80/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/treat_variadic_parameter_as_optional.php.inc b/rules-tests/Php80/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/treat_variadic_parameter_as_optional.php.inc new file mode 100644 index 00000000000..cab49025610 --- /dev/null +++ b/rules-tests/Php80/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture/treat_variadic_parameter_as_optional.php.inc @@ -0,0 +1,11 @@ +products = $products; + return $cart; + } +} diff --git a/rules/Php80/NodeResolver/RequireOptionalParamResolver.php b/rules/Php80/NodeResolver/RequireOptionalParamResolver.php index 78587360984..3cf47a0f8dc 100644 --- a/rules/Php80/NodeResolver/RequireOptionalParamResolver.php +++ b/rules/Php80/NodeResolver/RequireOptionalParamResolver.php @@ -19,7 +19,7 @@ public function resolve(FunctionLike $functionLike): array $optionalParams = []; $requireParams = []; foreach ($functionLike->getParams() as $position => $param) { - if ($param->default === null) { + if ($param->default === null && ! $param->variadic) { $requireParams[$position] = $param; } else { $optionalParams[$position] = $param;