mirror of
https://github.com/phabelio/PHP-Parser.git
synced 2024-11-30 04:29:15 +01:00
parent
5a43015499
commit
9aebf377fc
@ -530,24 +530,29 @@ non_empty_parameter_list:
|
||||
| non_empty_parameter_list ',' parameter { push($1, $3); }
|
||||
;
|
||||
|
||||
optional_visibility_modifier:
|
||||
optional_property_modifiers:
|
||||
/* empty */ { $$ = 0; }
|
||||
| T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; }
|
||||
| optional_property_modifiers property_modifier
|
||||
{ $this->checkModifier($1, $2, #2); $$ = $1 | $2; }
|
||||
;
|
||||
|
||||
property_modifier:
|
||||
T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; }
|
||||
| T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; }
|
||||
| T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; }
|
||||
| T_READONLY { $$ = Stmt\Class_::MODIFIER_READONLY; }
|
||||
;
|
||||
|
||||
parameter:
|
||||
optional_attributes optional_visibility_modifier optional_type_without_static
|
||||
optional_attributes optional_property_modifiers optional_type_without_static
|
||||
optional_arg_ref optional_ellipsis plain_variable
|
||||
{ $$ = new Node\Param($6, null, $3, $4, $5, attributes(), $2, $1);
|
||||
$this->checkParam($$); }
|
||||
| optional_attributes optional_visibility_modifier optional_type_without_static
|
||||
| optional_attributes optional_property_modifiers optional_type_without_static
|
||||
optional_arg_ref optional_ellipsis plain_variable '=' expr
|
||||
{ $$ = new Node\Param($6, $8, $3, $4, $5, attributes(), $2, $1);
|
||||
$this->checkParam($$); }
|
||||
| optional_attributes optional_visibility_modifier optional_type_without_static
|
||||
| optional_attributes optional_property_modifiers optional_type_without_static
|
||||
optional_arg_ref optional_ellipsis error
|
||||
{ $$ = new Node\Param(Expr\Error[], null, $3, $4, $5, attributes(), $2, $1); }
|
||||
;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,8 @@ class Point {
|
||||
public function __construct(
|
||||
public float $x = 0.0,
|
||||
protected array $y = [],
|
||||
private string $z = 'hello'
|
||||
private string $z = 'hello',
|
||||
public readonly int $a = 0,
|
||||
) {}
|
||||
}
|
||||
-----
|
||||
@ -81,6 +82,22 @@ array(
|
||||
value: hello
|
||||
)
|
||||
)
|
||||
3: Param(
|
||||
attrGroups: array(
|
||||
)
|
||||
flags: MODIFIER_PUBLIC | MODIFIER_READONLY (65)
|
||||
type: Identifier(
|
||||
name: int
|
||||
)
|
||||
byRef: false
|
||||
variadic: false
|
||||
var: Expr_Variable(
|
||||
name: a
|
||||
)
|
||||
default: Scalar_LNumber(
|
||||
value: 0
|
||||
)
|
||||
)
|
||||
)
|
||||
returnType: null
|
||||
stmts: array(
|
||||
|
@ -8,6 +8,7 @@ class Point
|
||||
public float $x = 0.0,
|
||||
protected array $y = [],
|
||||
private string $z = 'hello',
|
||||
public readonly int $a = 0,
|
||||
) {
|
||||
}
|
||||
}
|
||||
@ -15,7 +16,7 @@ class Point
|
||||
!!php7
|
||||
class Point
|
||||
{
|
||||
public function __construct(public float $x = 0.0, protected array $y = [], private string $z = 'hello')
|
||||
public function __construct(public float $x = 0.0, protected array $y = [], private string $z = 'hello', public readonly int $a = 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user