Tomas Votruba 6cee4f1782 Updated Rector to commit 81e9cbab101d6ef15de00b2da39d3095d7ad64fb
81e9cbab10 [Downgrade PHP 5.6] Add DowngradeArgumentUnpackingRector (#1219)
2021-11-13 14:51:42 +00:00

48 lines
1.0 KiB
PHP

<?php
declare (strict_types=1);
namespace Rector\DowngradePhp56\NodeManipulator;
use PhpParser\Node\Arg;
use PhpParser\Node\Expr\Array_;
final class ArgManipulator
{
/**
* @param Arg[] $args
*/
public function hasUnpackedArg(array $args) : bool
{
foreach ($args as $arg) {
if ($arg->unpack) {
return \true;
}
}
return \false;
}
/**
* @param Arg[] $args
* @return Arg[]
*/
public function unpack(array $args) : array
{
$unpackedArgList = new \Rector\DowngradePhp56\NodeManipulator\UnpackedArgList($args);
return $unpackedArgList->toArray();
}
/**
* @param Arg[] $args
*/
public function canBeInlined(array $args) : bool
{
foreach ($args as $arg) {
if (!$arg->unpack) {
continue;
}
if ($arg->value instanceof \PhpParser\Node\Expr\Array_) {
continue;
}
return \false;
}
return \true;
}
}