php-parser/test/code/parser/stmt/class/implicitPublic.test
Tomas Votruba 4c22c62783
[PHP 8.0] Add attributes support (#661)
Adds support for PHP 8 attributes, represented using `AttrGroup` nodes
containing `Attribute` nodes. The `attrGroup` subnode is added to all
nodes that can have attributes.

This is still missing FPPP support.

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2020-09-13 21:01:17 +02:00

126 lines
3.2 KiB
Plaintext

Implicitly public properties and methods
-----
<?php
abstract class A {
var $a;
static $b;
abstract function c();
final function d() {}
static function e() {}
final static function f() {}
function g() {}
}
-----
array(
0: Stmt_Class(
attrGroups: array(
)
flags: MODIFIER_ABSTRACT (16)
name: Identifier(
name: A
)
extends: null
implements: array(
)
stmts: array(
0: Stmt_Property(
attrGroups: array(
)
flags: 0
type: null
props: array(
0: Stmt_PropertyProperty(
name: VarLikeIdentifier(
name: a
)
default: null
)
)
)
1: Stmt_Property(
attrGroups: array(
)
flags: MODIFIER_STATIC (8)
type: null
props: array(
0: Stmt_PropertyProperty(
name: VarLikeIdentifier(
name: b
)
default: null
)
)
)
2: Stmt_ClassMethod(
attrGroups: array(
)
flags: MODIFIER_ABSTRACT (16)
byRef: false
name: Identifier(
name: c
)
params: array(
)
returnType: null
stmts: null
)
3: Stmt_ClassMethod(
attrGroups: array(
)
flags: MODIFIER_FINAL (32)
byRef: false
name: Identifier(
name: d
)
params: array(
)
returnType: null
stmts: array(
)
)
4: Stmt_ClassMethod(
attrGroups: array(
)
flags: MODIFIER_STATIC (8)
byRef: false
name: Identifier(
name: e
)
params: array(
)
returnType: null
stmts: array(
)
)
5: Stmt_ClassMethod(
attrGroups: array(
)
flags: MODIFIER_STATIC | MODIFIER_FINAL (40)
byRef: false
name: Identifier(
name: f
)
params: array(
)
returnType: null
stmts: array(
)
)
6: Stmt_ClassMethod(
attrGroups: array(
)
flags: 0
byRef: false
name: Identifier(
name: g
)
params: array(
)
returnType: null
stmts: array(
)
)
)
)
)