mirror of
https://github.com/rectorphp/rector.git
synced 2025-02-21 01:41:00 +01:00
2723dfd4df
[Php80] Fix OptionalParametersAfterRequiredRector to treat variadic as optional (#248)
29 lines
776 B
PHP
29 lines
776 B
PHP
<?php
|
|
|
|
declare (strict_types=1);
|
|
namespace Rector\Php80\NodeResolver;
|
|
|
|
use PhpParser\Node\FunctionLike;
|
|
use PhpParser\Node\Param;
|
|
use PhpParser\Node\Stmt\ClassMethod;
|
|
final class RequireOptionalParamResolver
|
|
{
|
|
/**
|
|
* @param ClassMethod $functionLike
|
|
* @return Param[]
|
|
*/
|
|
public function resolve(\PhpParser\Node\FunctionLike $functionLike) : array
|
|
{
|
|
$optionalParams = [];
|
|
$requireParams = [];
|
|
foreach ($functionLike->getParams() as $position => $param) {
|
|
if ($param->default === null && !$param->variadic) {
|
|
$requireParams[$position] = $param;
|
|
} else {
|
|
$optionalParams[$position] = $param;
|
|
}
|
|
}
|
|
return $requireParams + $optionalParams;
|
|
}
|
|
}
|