rector/rules/Php80/NodeResolver/RequireOptionalParamResolver.php
Tomas Votruba 04232cb88d Updated Rector to commit d80ddd193deeebd47e765dfb58d300faaedc25b4
d80ddd193d [CodeQuality] Handle possible crash on ParametersAcceptorSelector::selectSingle() on OptionalParametersAfterRequiredRector (#3192)
2022-12-13 12:09:37 +00:00

27 lines
853 B
PHP

<?php
declare (strict_types=1);
namespace Rector\Php80\NodeResolver;
use PHPStan\Reflection\ParameterReflection;
use PHPStan\Reflection\ParametersAcceptor;
final class RequireOptionalParamResolver
{
/**
* @return ParameterReflection[]
*/
public function resolveFromParametersAcceptor(ParametersAcceptor $parametersAcceptor) : array
{
$optionalParams = [];
$requireParams = [];
foreach ($parametersAcceptor->getParameters() as $position => $parameterReflection) {
if ($parameterReflection->getDefaultValue() === null && !$parameterReflection->isVariadic()) {
$requireParams[$position] = $parameterReflection;
} else {
$optionalParams[$position] = $parameterReflection;
}
}
return $requireParams + $optionalParams;
}
}