Mercurial > hg > isophonics-drupal-site
diff vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 5fb285c0d0e3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,215 @@ +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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_Property( + flags: MODIFIER_PUBLIC (1) + props: array( + 0: Stmt_PropertyProperty( + 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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_Property( + flags: MODIFIER_PUBLIC | MODIFIER_PROTECTED (3) + props: array( + 0: Stmt_PropertyProperty( + 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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_ClassMethod( + flags: MODIFIER_ABSTRACT (16) + byRef: false + 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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_Property( + flags: MODIFIER_STATIC (8) + props: array( + 0: Stmt_PropertyProperty( + 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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_ClassMethod( + flags: MODIFIER_FINAL (32) + byRef: false + 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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_ClassMethod( + flags: MODIFIER_ABSTRACT | MODIFIER_FINAL (48) + byRef: false + 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: 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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_Property( + flags: MODIFIER_ABSTRACT (16) + props: array( + 0: Stmt_PropertyProperty( + 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: A + extends: null + implements: array( + ) + stmts: array( + 0: Stmt_Property( + flags: MODIFIER_FINAL (32) + props: array( + 0: Stmt_PropertyProperty( + name: a + default: null + ) + ) + ) + ) + ) +)