Skip to content

Commit 287b8b8

Browse files
committed
Fix variadic parameter after optional
1 parent 4033321 commit 287b8b8

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/Rules/FunctionDefinitionCheck.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ private function checkRequiredParameterAfterOptional(array $parameterNodes): arr
321321
throw new \PHPStan\ShouldNotHappenException();
322322
}
323323
$parameterName = $parameterNode->var->name;
324-
if ($optionalParameter !== null && $parameterNode->default === null) {
324+
if ($optionalParameter !== null && $parameterNode->default === null && !$parameterNode->variadic) {
325325
$errors[] = RuleErrorBuilder::message(sprintf('Deprecated in PHP 8.0: Required parameter $%s follows optional parameter $%s.', $parameterName, $optionalParameter))->line($parameterNode->getStartLine())->nonIgnorable()->build();
326326
continue;
327327
}

tests/PHPStan/Rules/Functions/data/required-parameter-after-optional.php

+4
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,7 @@ function doBaz(int $foo = 1, $bar): void // not OK
1818
function doLorem(bool $foo = true, $bar): void // not OK
1919
{
2020
}
21+
22+
function doIpsum(bool $foo = true, ...$bar): void // OK
23+
{
24+
}

0 commit comments

Comments
 (0)