annotate vendor/nikic/php-parser/test/code/parser/stmt/class/modifier.test @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 Invalid modifier combination
Chris@0 2 -----
Chris@0 3 <?php class A { public public $a; }
Chris@0 4 -----
Chris@0 5 Multiple access type modifiers are not allowed from 1:24 to 1:29
Chris@0 6 array(
Chris@0 7 0: Stmt_Class(
Chris@0 8 flags: 0
Chris@13 9 name: Identifier(
Chris@13 10 name: A
Chris@13 11 )
Chris@0 12 extends: null
Chris@0 13 implements: array(
Chris@0 14 )
Chris@0 15 stmts: array(
Chris@0 16 0: Stmt_Property(
Chris@0 17 flags: MODIFIER_PUBLIC (1)
Chris@17 18 type: null
Chris@0 19 props: array(
Chris@0 20 0: Stmt_PropertyProperty(
Chris@13 21 name: VarLikeIdentifier(
Chris@13 22 name: a
Chris@13 23 )
Chris@0 24 default: null
Chris@0 25 )
Chris@0 26 )
Chris@0 27 )
Chris@0 28 )
Chris@0 29 )
Chris@0 30 )
Chris@0 31 -----
Chris@0 32 <?php class A { public protected $a; }
Chris@0 33 -----
Chris@0 34 Multiple access type modifiers are not allowed from 1:24 to 1:32
Chris@0 35 array(
Chris@0 36 0: Stmt_Class(
Chris@0 37 flags: 0
Chris@13 38 name: Identifier(
Chris@13 39 name: A
Chris@13 40 )
Chris@0 41 extends: null
Chris@0 42 implements: array(
Chris@0 43 )
Chris@0 44 stmts: array(
Chris@0 45 0: Stmt_Property(
Chris@0 46 flags: MODIFIER_PUBLIC | MODIFIER_PROTECTED (3)
Chris@17 47 type: null
Chris@0 48 props: array(
Chris@0 49 0: Stmt_PropertyProperty(
Chris@13 50 name: VarLikeIdentifier(
Chris@13 51 name: a
Chris@13 52 )
Chris@0 53 default: null
Chris@0 54 )
Chris@0 55 )
Chris@0 56 )
Chris@0 57 )
Chris@0 58 )
Chris@0 59 )
Chris@0 60 -----
Chris@0 61 <?php class A { abstract abstract function a(); }
Chris@0 62 -----
Chris@0 63 Multiple abstract modifiers are not allowed from 1:26 to 1:33
Chris@0 64 array(
Chris@0 65 0: Stmt_Class(
Chris@0 66 flags: 0
Chris@13 67 name: Identifier(
Chris@13 68 name: A
Chris@13 69 )
Chris@0 70 extends: null
Chris@0 71 implements: array(
Chris@0 72 )
Chris@0 73 stmts: array(
Chris@0 74 0: Stmt_ClassMethod(
Chris@0 75 flags: MODIFIER_ABSTRACT (16)
Chris@0 76 byRef: false
Chris@13 77 name: Identifier(
Chris@13 78 name: a
Chris@13 79 )
Chris@0 80 params: array(
Chris@0 81 )
Chris@0 82 returnType: null
Chris@0 83 stmts: null
Chris@0 84 )
Chris@0 85 )
Chris@0 86 )
Chris@0 87 )
Chris@0 88 -----
Chris@0 89 <?php class A { static static $a; }
Chris@0 90 -----
Chris@0 91 Multiple static modifiers are not allowed from 1:24 to 1:29
Chris@0 92 array(
Chris@0 93 0: Stmt_Class(
Chris@0 94 flags: 0
Chris@13 95 name: Identifier(
Chris@13 96 name: A
Chris@13 97 )
Chris@0 98 extends: null
Chris@0 99 implements: array(
Chris@0 100 )
Chris@0 101 stmts: array(
Chris@0 102 0: Stmt_Property(
Chris@0 103 flags: MODIFIER_STATIC (8)
Chris@17 104 type: null
Chris@0 105 props: array(
Chris@0 106 0: Stmt_PropertyProperty(
Chris@13 107 name: VarLikeIdentifier(
Chris@13 108 name: a
Chris@13 109 )
Chris@0 110 default: null
Chris@0 111 )
Chris@0 112 )
Chris@0 113 )
Chris@0 114 )
Chris@0 115 )
Chris@0 116 )
Chris@0 117 -----
Chris@0 118 <?php class A { final final function a() {} }
Chris@0 119 -----
Chris@0 120 Multiple final modifiers are not allowed from 1:23 to 1:27
Chris@0 121 array(
Chris@0 122 0: Stmt_Class(
Chris@0 123 flags: 0
Chris@13 124 name: Identifier(
Chris@13 125 name: A
Chris@13 126 )
Chris@0 127 extends: null
Chris@0 128 implements: array(
Chris@0 129 )
Chris@0 130 stmts: array(
Chris@0 131 0: Stmt_ClassMethod(
Chris@0 132 flags: MODIFIER_FINAL (32)
Chris@0 133 byRef: false
Chris@13 134 name: Identifier(
Chris@13 135 name: a
Chris@13 136 )
Chris@0 137 params: array(
Chris@0 138 )
Chris@0 139 returnType: null
Chris@0 140 stmts: array(
Chris@0 141 )
Chris@0 142 )
Chris@0 143 )
Chris@0 144 )
Chris@0 145 )
Chris@0 146 -----
Chris@0 147 <?php class A { abstract final function a(); }
Chris@0 148 -----
Chris@0 149 Cannot use the final modifier on an abstract class member from 1:26 to 1:30
Chris@0 150 array(
Chris@0 151 0: Stmt_Class(
Chris@0 152 flags: 0
Chris@13 153 name: Identifier(
Chris@13 154 name: A
Chris@13 155 )
Chris@0 156 extends: null
Chris@0 157 implements: array(
Chris@0 158 )
Chris@0 159 stmts: array(
Chris@0 160 0: Stmt_ClassMethod(
Chris@0 161 flags: MODIFIER_ABSTRACT | MODIFIER_FINAL (48)
Chris@0 162 byRef: false
Chris@13 163 name: Identifier(
Chris@13 164 name: a
Chris@13 165 )
Chris@0 166 params: array(
Chris@0 167 )
Chris@0 168 returnType: null
Chris@0 169 stmts: null
Chris@0 170 )
Chris@0 171 )
Chris@0 172 )
Chris@0 173 )
Chris@0 174 -----
Chris@0 175 <?php abstract final class A { }
Chris@0 176 // Type in the partial parse could conceivably be any of 0, 16 or 32
Chris@0 177 -----
Chris@0 178 Syntax error, unexpected T_FINAL, expecting T_CLASS from 1:16 to 1:20
Chris@0 179 array(
Chris@0 180 0: Stmt_Class(
Chris@0 181 flags: MODIFIER_FINAL (32)
Chris@13 182 name: Identifier(
Chris@13 183 name: A
Chris@13 184 )
Chris@0 185 extends: null
Chris@0 186 implements: array(
Chris@0 187 )
Chris@0 188 stmts: array(
Chris@0 189 )
Chris@0 190 )
Chris@0 191 1: Stmt_Nop(
Chris@0 192 comments: array(
Chris@0 193 0: // Type in the partial parse could conceivably be any of 0, 16 or 32
Chris@0 194 )
Chris@0 195 )
Chris@0 196 )
Chris@0 197 -----
Chris@0 198 <?php class A { abstract $a; }
Chris@0 199 -----
Chris@0 200 Properties cannot be declared abstract from 1:17 to 1:24
Chris@0 201 array(
Chris@0 202 0: Stmt_Class(
Chris@0 203 flags: 0
Chris@13 204 name: Identifier(
Chris@13 205 name: A
Chris@13 206 )
Chris@0 207 extends: null
Chris@0 208 implements: array(
Chris@0 209 )
Chris@0 210 stmts: array(
Chris@0 211 0: Stmt_Property(
Chris@0 212 flags: MODIFIER_ABSTRACT (16)
Chris@17 213 type: null
Chris@0 214 props: array(
Chris@0 215 0: Stmt_PropertyProperty(
Chris@13 216 name: VarLikeIdentifier(
Chris@13 217 name: a
Chris@13 218 )
Chris@0 219 default: null
Chris@0 220 )
Chris@0 221 )
Chris@0 222 )
Chris@0 223 )
Chris@0 224 )
Chris@0 225 )
Chris@0 226 -----
Chris@0 227 <?php class A { final $a; }
Chris@0 228 -----
Chris@0 229 Properties cannot be declared final from 1:17 to 1:21
Chris@0 230 array(
Chris@0 231 0: Stmt_Class(
Chris@0 232 flags: 0
Chris@13 233 name: Identifier(
Chris@13 234 name: A
Chris@13 235 )
Chris@0 236 extends: null
Chris@0 237 implements: array(
Chris@0 238 )
Chris@0 239 stmts: array(
Chris@0 240 0: Stmt_Property(
Chris@0 241 flags: MODIFIER_FINAL (32)
Chris@17 242 type: null
Chris@0 243 props: array(
Chris@0 244 0: Stmt_PropertyProperty(
Chris@13 245 name: VarLikeIdentifier(
Chris@13 246 name: a
Chris@13 247 )
Chris@0 248 default: null
Chris@0 249 )
Chris@0 250 )
Chris@0 251 )
Chris@0 252 )
Chris@0 253 )
Chris@13 254 )