first commit
This commit is contained in:
35
vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php
vendored
Normal file
35
vendor/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace PhpParser\Node\Expr;
|
||||
|
||||
use PhpParser\Node\Arg;
|
||||
use PhpParser\Node\Expr;
|
||||
use PhpParser\Node\VariadicPlaceholder;
|
||||
|
||||
abstract class CallLike extends Expr {
|
||||
/**
|
||||
* Return raw arguments, which may be actual Args, or VariadicPlaceholders for first-class
|
||||
* callables.
|
||||
*
|
||||
* @return array<Arg|VariadicPlaceholder>
|
||||
*/
|
||||
abstract public function getRawArgs(): array;
|
||||
|
||||
/**
|
||||
* Returns whether this call expression is actually a first class callable.
|
||||
*/
|
||||
public function isFirstClassCallable(): bool {
|
||||
$rawArgs = $this->getRawArgs();
|
||||
return count($rawArgs) === 1 && current($rawArgs) instanceof VariadicPlaceholder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert that this is not a first-class callable and return only ordinary Args.
|
||||
*
|
||||
* @return Arg[]
|
||||
*/
|
||||
public function getArgs(): array {
|
||||
assert(!$this->isFirstClassCallable());
|
||||
return $this->getRawArgs();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user