mirror of
https://github.com/nikic/PHP-Parser.git
synced 2025-07-24 07:41:35 +02:00
Support every argument syntax for clone()
(#1092)
See php/php-src#18938
This commit is contained in:
@@ -3,6 +3,18 @@ Declaring clone function stub
|
||||
<?php
|
||||
|
||||
function clone(object $object, array $withProperties = []): object {}
|
||||
clone $x;
|
||||
clone($x);
|
||||
clone($x, );
|
||||
clone($x, [ "foo" => $foo, "bar" => $bar ]);
|
||||
clone($x, $array);
|
||||
clone($x, $array, $extraParameter, $trailingComma, );
|
||||
clone(object: $x, withProperties: [ "foo" => $foo, "bar" => $bar ]);
|
||||
clone($x, withProperties: [ "foo" => $foo, "bar" => $bar ]);
|
||||
clone(object: $x);
|
||||
clone(object: $x, [ "foo" => $foo, "bar" => $bar ]);
|
||||
clone(...["object" => $x, "withProperties" => [ "foo" => $foo, "bar" => $bar ]]);
|
||||
clone(...);
|
||||
-----
|
||||
array(
|
||||
0: Stmt_Function(
|
||||
@@ -55,4 +67,382 @@ array(
|
||||
stmts: array(
|
||||
)
|
||||
)
|
||||
1: Stmt_Expression(
|
||||
expr: Expr_Clone(
|
||||
expr: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
)
|
||||
)
|
||||
2: Stmt_Expression(
|
||||
expr: Expr_Clone(
|
||||
expr: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
)
|
||||
)
|
||||
3: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
4: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: Arg(
|
||||
name: null
|
||||
value: Expr_Array(
|
||||
items: array(
|
||||
0: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: foo
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: foo
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: bar
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: bar
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
5: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: array
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
6: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: array
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
2: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: extraParameter
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
3: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: trailingComma
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
7: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: Identifier(
|
||||
name: object
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: Arg(
|
||||
name: Identifier(
|
||||
name: withProperties
|
||||
)
|
||||
value: Expr_Array(
|
||||
items: array(
|
||||
0: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: foo
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: foo
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: bar
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: bar
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
8: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: null
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: Arg(
|
||||
name: Identifier(
|
||||
name: withProperties
|
||||
)
|
||||
value: Expr_Array(
|
||||
items: array(
|
||||
0: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: foo
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: foo
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: bar
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: bar
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
9: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: Identifier(
|
||||
name: object
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
10: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: Identifier(
|
||||
name: object
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: Arg(
|
||||
name: null
|
||||
value: Expr_Array(
|
||||
items: array(
|
||||
0: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: foo
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: foo
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: bar
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: bar
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
11: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: Arg(
|
||||
name: null
|
||||
value: Expr_Array(
|
||||
items: array(
|
||||
0: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: object
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: x
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: withProperties
|
||||
)
|
||||
value: Expr_Array(
|
||||
items: array(
|
||||
0: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: foo
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: foo
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
1: ArrayItem(
|
||||
key: Scalar_String(
|
||||
value: bar
|
||||
)
|
||||
value: Expr_Variable(
|
||||
name: bar
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
byRef: false
|
||||
unpack: false
|
||||
)
|
||||
)
|
||||
)
|
||||
byRef: false
|
||||
unpack: true
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
12: Stmt_Expression(
|
||||
expr: Expr_FuncCall(
|
||||
name: Name(
|
||||
name: clone
|
||||
)
|
||||
args: array(
|
||||
0: VariadicPlaceholder(
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
Reference in New Issue
Block a user