<?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 list<Arg|VariadicPlaceholder>
     */
    abstract public function getRawArgs(): array;

    public function isFirstClassCallable(): bool {}

    /**
     * @psalm-pure
     * @return list<Arg>
     */
    public function getArgs(): array {}
}


namespace PhpParser\Node;

use PhpParser\NodeAbstract;

class Name extends NodeAbstract {
    /**
     * @param string|string[]|self $name
     * @param array                $attributes
     */
    public function __construct($name, array $attributes = []) {}

    /**
     * @return non-empty-string
     */
    public function toString(): string {}
}
