Delete provisional syntax for capabilities
[hiphop-php.git] / hphp / hack / test / full_fidelity / cases / function_pointers / function_pointer_with_targ_with_attribute.php.json.exp
blob7fc734013ad98e126642c894a336151bd8141866
2 "parse_tree":{
3 "kind":"script",
4 "script_declarations":{
5 "kind":"list",
6 "elements":[
8 "kind":"markup_section",
9 "markup_hashbang":{
10 "kind":"token",
11 "token":{
12 "kind":"hashbang",
13 "text":"",
14 "offset":0,
15 "leading_width":0,
16 "width":0,
17 "trailing_width":0,
18 "leading":[],
19 "trailing":[],
20 "line_number":1
23 "markup_suffix":{
24 "kind":"markup_suffix",
25 "markup_suffix_less_than_question":{
26 "kind":"token",
27 "token":{
28 "kind":"<?",
29 "text":"<?",
30 "offset":0,
31 "leading_width":0,
32 "width":2,
33 "trailing_width":0,
34 "leading":[],
35 "trailing":[],
36 "line_number":1
39 "markup_suffix_name":{
40 "kind":"token",
41 "token":{
42 "kind":"name",
43 "text":"hh",
44 "offset":2,
45 "leading_width":0,
46 "width":2,
47 "trailing_width":1,
48 "leading":[],
49 "trailing":[{"kind":"end_of_line","text":"\n","offset":4,"width":1}],
50 "line_number":1
56 "kind":"function_declaration",
57 "function_attribute_spec":{"kind":"missing"},
58 "function_declaration_header":{
59 "kind":"function_declaration_header",
60 "function_modifiers":{"kind":"missing"},
61 "function_keyword":{
62 "kind":"token",
63 "token":{
64 "kind":"function",
65 "text":"function",
66 "offset":5,
67 "leading_width":1,
68 "width":8,
69 "trailing_width":1,
70 "leading":[{"kind":"end_of_line","text":"\n","offset":5,"width":1}],
71 "trailing":[{"kind":"whitespace","text":" ","offset":14,"width":1}],
72 "line_number":3
75 "function_name":{
76 "kind":"token",
77 "token":{
78 "kind":"name",
79 "text":"test",
80 "offset":15,
81 "leading_width":0,
82 "width":4,
83 "trailing_width":0,
84 "leading":[],
85 "trailing":[],
86 "line_number":3
89 "function_type_parameter_list":{"kind":"missing"},
90 "function_left_paren":{
91 "kind":"token",
92 "token":{
93 "kind":"(",
94 "text":"(",
95 "offset":19,
96 "leading_width":0,
97 "width":1,
98 "trailing_width":0,
99 "leading":[],
100 "trailing":[],
101 "line_number":3
104 "function_parameter_list":{"kind":"missing"},
105 "function_right_paren":{
106 "kind":"token",
107 "token":{
108 "kind":")",
109 "text":")",
110 "offset":20,
111 "leading_width":0,
112 "width":1,
113 "trailing_width":0,
114 "leading":[],
115 "trailing":[],
116 "line_number":3
119 "function_capability":{"kind":"missing"},
120 "function_colon":{
121 "kind":"token",
122 "token":{
123 "kind":":",
124 "text":":",
125 "offset":21,
126 "leading_width":0,
127 "width":1,
128 "trailing_width":1,
129 "leading":[],
130 "trailing":[{"kind":"whitespace","text":" ","offset":22,"width":1}],
131 "line_number":3
134 "function_type":{
135 "kind":"simple_type_specifier",
136 "simple_type_specifier":{
137 "kind":"token",
138 "token":{
139 "kind":"void",
140 "text":"void",
141 "offset":23,
142 "leading_width":0,
143 "width":4,
144 "trailing_width":1,
145 "leading":[],
146 "trailing":[{"kind":"whitespace","text":" ","offset":27,"width":1}],
147 "line_number":3
151 "function_where_clause":{"kind":"missing"}
153 "function_body":{
154 "kind":"compound_statement",
155 "compound_left_brace":{
156 "kind":"token",
157 "token":{
158 "kind":"{",
159 "text":"{",
160 "offset":28,
161 "leading_width":0,
162 "width":1,
163 "trailing_width":1,
164 "leading":[],
165 "trailing":[{"kind":"end_of_line","text":"\n","offset":29,"width":1}],
166 "line_number":3
169 "compound_statements":{
170 "kind":"list",
171 "elements":[
173 "kind":"expression_statement",
174 "expression_statement_expression":{
175 "kind":"binary_expression",
176 "binary_left_operand":{
177 "kind":"variable",
178 "variable_expression":{
179 "kind":"token",
180 "token":{
181 "kind":"variable",
182 "text":"$x",
183 "offset":30,
184 "leading_width":2,
185 "width":2,
186 "trailing_width":1,
187 "leading":[{"kind":"whitespace","text":" ","offset":30,"width":2}],
188 "trailing":[{"kind":"whitespace","text":" ","offset":34,"width":1}],
189 "line_number":4
193 "binary_operator":{
194 "kind":"token",
195 "token":{
196 "kind":"=",
197 "text":"=",
198 "offset":35,
199 "leading_width":0,
200 "width":1,
201 "trailing_width":1,
202 "leading":[],
203 "trailing":[{"kind":"whitespace","text":" ","offset":36,"width":1}],
204 "line_number":4
207 "binary_right_operand":{
208 "kind":"function_pointer_expression",
209 "function_pointer_receiver":{
210 "kind":"token",
211 "token":{
212 "kind":"name",
213 "text":"foo",
214 "offset":37,
215 "leading_width":0,
216 "width":3,
217 "trailing_width":0,
218 "leading":[],
219 "trailing":[],
220 "line_number":4
223 "function_pointer_type_args":{
224 "kind":"type_arguments",
225 "type_arguments_left_angle":{
226 "kind":"token",
227 "token":{
228 "kind":"<",
229 "text":"<",
230 "offset":40,
231 "leading_width":0,
232 "width":1,
233 "trailing_width":0,
234 "leading":[],
235 "trailing":[],
236 "line_number":4
239 "type_arguments_types":{
240 "kind":"list",
241 "elements":[
243 "kind":"list_item",
244 "list_item":{
245 "kind":"attributized_specifier",
246 "attributized_specifier_attribute_spec":{
247 "kind":"old_attribute_specification",
248 "old_attribute_specification_left_double_angle":{
249 "kind":"token",
250 "token":{
251 "kind":"<<",
252 "text":"<<",
253 "offset":41,
254 "leading_width":0,
255 "width":2,
256 "trailing_width":0,
257 "leading":[],
258 "trailing":[],
259 "line_number":4
262 "old_attribute_specification_attributes":{
263 "kind":"list",
264 "elements":[
266 "kind":"list_item",
267 "list_item":{
268 "kind":"constructor_call",
269 "constructor_call_type":{
270 "kind":"token",
271 "token":{
272 "kind":"name",
273 "text":"MyAttribute",
274 "offset":43,
275 "leading_width":0,
276 "width":11,
277 "trailing_width":0,
278 "leading":[],
279 "trailing":[],
280 "line_number":4
283 "constructor_call_left_paren":{"kind":"missing"},
284 "constructor_call_argument_list":{"kind":"missing"},
285 "constructor_call_right_paren":{"kind":"missing"}
287 "list_separator":{"kind":"missing"}
291 "old_attribute_specification_right_double_angle":{
292 "kind":"token",
293 "token":{
294 "kind":">>",
295 "text":">>",
296 "offset":54,
297 "leading_width":0,
298 "width":2,
299 "trailing_width":1,
300 "leading":[],
301 "trailing":[{"kind":"whitespace","text":" ","offset":56,"width":1}],
302 "line_number":4
306 "attributized_specifier_type":{
307 "kind":"simple_type_specifier",
308 "simple_type_specifier":{
309 "kind":"token",
310 "token":{
311 "kind":"name",
312 "text":"MyClass",
313 "offset":57,
314 "leading_width":0,
315 "width":7,
316 "trailing_width":0,
317 "leading":[],
318 "trailing":[],
319 "line_number":4
324 "list_separator":{"kind":"missing"}
328 "type_arguments_right_angle":{
329 "kind":"token",
330 "token":{
331 "kind":">",
332 "text":">",
333 "offset":64,
334 "leading_width":0,
335 "width":1,
336 "trailing_width":0,
337 "leading":[],
338 "trailing":[],
339 "line_number":4
345 "expression_statement_semicolon":{
346 "kind":"token",
347 "token":{
348 "kind":";",
349 "text":";",
350 "offset":65,
351 "leading_width":0,
352 "width":1,
353 "trailing_width":1,
354 "leading":[],
355 "trailing":[{"kind":"end_of_line","text":"\n","offset":66,"width":1}],
356 "line_number":4
362 "compound_right_brace":{
363 "kind":"token",
364 "token":{
365 "kind":"}",
366 "text":"}",
367 "offset":67,
368 "leading_width":0,
369 "width":1,
370 "trailing_width":1,
371 "leading":[],
372 "trailing":[{"kind":"end_of_line","text":"\n","offset":68,"width":1}],
373 "line_number":5
379 "kind":"end_of_file",
380 "end_of_file_token":{
381 "kind":"token",
382 "token":{
383 "kind":"end_of_file",
384 "text":"",
385 "offset":69,
386 "leading_width":0,
387 "width":0,
388 "trailing_width":0,
389 "leading":[],
390 "trailing":[],
391 "line_number":6
398 "program_text":"<?hh\n\nfunction test(): void {\n $x = foo<<<MyAttribute>> MyClass>;\n}\n",
399 "version":"2020-12-09-0001"