Mercurial > hg > isophonics-drupal-site
view vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
line wrap: on
line source
Invalid modifier combination ----- <?php class A { public public $a; } ----- Multiple access type modifiers are not allowed from 1:24 to 1:29 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_Property( flags: MODIFIER_PUBLIC (1) props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( name: a ) default: null ) ) ) ) ) ) ----- <?php class A { public protected $a; } ----- Multiple access type modifiers are not allowed from 1:24 to 1:32 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_Property( flags: MODIFIER_PUBLIC | MODIFIER_PROTECTED (3) props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( name: a ) default: null ) ) ) ) ) ) ----- <?php class A { abstract abstract function a(); } ----- Multiple abstract modifiers are not allowed from 1:26 to 1:33 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_ClassMethod( flags: MODIFIER_ABSTRACT (16) byRef: false name: Identifier( name: a ) params: array( ) returnType: null stmts: null ) ) ) ) ----- <?php class A { static static $a; } ----- Multiple static modifiers are not allowed from 1:24 to 1:29 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_Property( flags: MODIFIER_STATIC (8) props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( name: a ) default: null ) ) ) ) ) ) ----- <?php class A { final final function a() {} } ----- Multiple final modifiers are not allowed from 1:23 to 1:27 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_ClassMethod( flags: MODIFIER_FINAL (32) byRef: false name: Identifier( name: a ) params: array( ) returnType: null stmts: array( ) ) ) ) ) ----- <?php class A { abstract final function a(); } ----- Cannot use the final modifier on an abstract class member from 1:26 to 1:30 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_ClassMethod( flags: MODIFIER_ABSTRACT | MODIFIER_FINAL (48) byRef: false name: Identifier( name: a ) params: array( ) returnType: null stmts: null ) ) ) ) ----- <?php abstract final class A { } // Type in the partial parse could conceivably be any of 0, 16 or 32 ----- Syntax error, unexpected T_FINAL, expecting T_CLASS from 1:16 to 1:20 array( 0: Stmt_Class( flags: MODIFIER_FINAL (32) name: Identifier( name: A ) extends: null implements: array( ) stmts: array( ) ) 1: Stmt_Nop( comments: array( 0: // Type in the partial parse could conceivably be any of 0, 16 or 32 ) ) ) ----- <?php class A { abstract $a; } ----- Properties cannot be declared abstract from 1:17 to 1:24 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_Property( flags: MODIFIER_ABSTRACT (16) props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( name: a ) default: null ) ) ) ) ) ) ----- <?php class A { final $a; } ----- Properties cannot be declared final from 1:17 to 1:21 array( 0: Stmt_Class( flags: 0 name: Identifier( name: A ) extends: null implements: array( ) stmts: array( 0: Stmt_Property( flags: MODIFIER_FINAL (32) props: array( 0: Stmt_PropertyProperty( name: VarLikeIdentifier( name: a ) default: null ) ) ) ) ) )