*/ public abstract function getRawArgs() : array; /** * Returns whether this call expression is actually a first class callable. */ public function isFirstClassCallable() : bool { foreach ($this->getRawArgs() as $arg) { if ($arg instanceof VariadicPlaceholder) { return \true; } } return \false; } /** * 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(); } }