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 ) |