rector/rules/Php80/NodeResolver/RequireOptionalParamResolver.php
Tomas Votruba 4465a95e7a Updated Rector to commit e639ed4d1a1780e5ab26d2017f874fdc2d10044e
e639ed4d1a [PHPStan] Add PHPStan 0.12.90 support (#246)
2021-06-19 14:06:22 +00:00

29 lines
755 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) {
$requireParams[$position] = $param;
} else {
$optionalParams[$position] = $param;
}
}
return $requireParams + $optionalParams;
}
}