php-parser/test/code/parser/expr/firstClassCallables.test
Nikita Popov 08501991d4 Don't make VariadicPlaceholder an expression
And don't store it in an Arg.
2021-09-12 21:59:26 +02:00

106 lines
2.3 KiB
Plaintext

First-class callables
-----
<?php
foo(...);
$this->foo(...);
A::foo(...);
// These are invalid, but accepted on the parser level.
new Foo(...);
#[Foo(...)]
function foo() {}
-----
!!php7
array(
0: Stmt_Expression(
expr: Expr_FuncCall(
name: Name(
parts: array(
0: foo
)
)
args: array(
0: VariadicPlaceholder(
)
)
)
)
1: Stmt_Expression(
expr: Expr_MethodCall(
var: Expr_Variable(
name: this
)
name: Identifier(
name: foo
)
args: array(
0: VariadicPlaceholder(
)
)
)
)
2: Stmt_Expression(
expr: Expr_StaticCall(
class: Name(
parts: array(
0: A
)
)
name: Identifier(
name: foo
)
args: array(
0: VariadicPlaceholder(
)
)
)
)
3: Stmt_Expression(
expr: Expr_New(
class: Name(
parts: array(
0: Foo
)
)
args: array(
0: VariadicPlaceholder(
)
)
comments: array(
0: // These are invalid, but accepted on the parser level.
)
)
comments: array(
0: // These are invalid, but accepted on the parser level.
)
)
4: Stmt_Function(
attrGroups: array(
0: AttributeGroup(
attrs: array(
0: Attribute(
name: Name(
parts: array(
0: Foo
)
)
args: array(
0: VariadicPlaceholder(
)
)
)
)
)
)
byRef: false
name: Identifier(
name: foo
)
params: array(
)
returnType: null
stmts: array(
)
)
)