rector/rules/Php80/NodeResolver/ArgumentSorter.php
Tomas Votruba d56e7982d0 Updated Rector to commit dedd4b55fe
dedd4b55fe make node_helper.php safe for similar names
2021-05-09 20:15:43 +00:00

29 lines
760 B
PHP

<?php
declare (strict_types=1);
namespace Rector\Php80\NodeResolver;
use PhpParser\Node\Arg;
use PhpParser\Node\Param;
final class ArgumentSorter
{
/**
* @param array<int, Param> $expectedOrderedParams
* @param Arg[] $args
* @return Arg[]
*/
public function sortArgsByExpectedParamOrder(array $args, array $expectedOrderedParams) : array
{
$oldToNewPositions = \array_keys($expectedOrderedParams);
$newArgs = [];
foreach (\array_keys($args) as $position) {
$newPosition = $oldToNewPositions[$position] ?? null;
if ($newPosition === null) {
continue;
}
$newArgs[$position] = $args[$newPosition];
}
return $newArgs;
}
}