Add position metadata to desugaring
[hiphop-php.git] / hphp / hack / test / nast / expression_tree_loop.php.exp
blob63f14fd2b6bfd2b22c4540d569592d14fb9422e7
1 [(Fun
2 { f_span = [3:1-5:2]; f_annotation = (); f_mode = Mstrict;
3 f_ret = ((), (Some ([3:18-22], (Hprim Tvoid))));
4 f_name = ([3:10-14], "\\test"); f_tparams = [];
5 f_where_constraints = []; f_variadic = FVnonVariadic; f_params = [];
6 f_cap = ((), None); f_unsafe_cap = ((), None);
7 f_body =
8 { fb_ast =
9 [([4:3-43],
10 (Expr
11 ([4:3-42],
12 (ExpressionTree
13 { et_hint = ([4:3-7], (Happly (([4:3-7], "\\Code"), [])));
14 et_src_expr =
15 ([4:8-41],
16 (Lfun (
17 { f_span = [4:8-41]; f_annotation = ();
18 f_mode = Mstrict; f_ret = ((), None);
19 f_name = ([4:8-41], ";anonymous"); f_tparams = [];
20 f_where_constraints = [];
21 f_variadic = FVnonVariadic; f_params = [];
22 f_cap = ((), None); f_unsafe_cap = ((), None);
23 f_body =
24 { fb_ast =
25 [([4:17-39],
26 (While (([4:23-27], True),
27 [([4:31-37],
28 (Expr
29 ([4:31-36],
30 (Call (
31 ([4:31-34],
32 (Id ([4:31-34], "\\foo"))),
33 [], [], None)))))
35 )))
37 fb_annotation = Named };
38 f_fun_kind = FSync; f_user_attributes = [];
39 f_file_attributes = []; f_external = false;
40 f_namespace =
41 { Namespace_env.ns_ns_uses = <opaque>;
42 ns_class_uses = <opaque>;
43 ns_record_def_uses = <opaque>;
44 ns_fun_uses = <opaque>; ns_const_uses = <opaque>;
45 ns_name = None; ns_auto_ns_map = [];
46 ns_is_codegen = false;
47 ns_disable_xhp_element_mangling = false };
48 f_doc_comment = None; f_static = false },
49 [])));
50 et_desugared_expr =
51 ([4:8-41],
52 (Call (
53 ([4:8-41],
54 (Lfun (
55 { f_span = [4:8-41]; f_annotation = ();
56 f_mode = Mstrict; f_ret = ((), None);
57 f_name = ([Pos.none], ";anonymous");
58 f_tparams = []; f_where_constraints = [];
59 f_variadic = FVnonVariadic; f_params = [];
60 f_cap = ((), None); f_unsafe_cap = ((), None);
61 f_body =
62 { fb_ast =
63 [([4:8-41],
64 (Return
65 (Some ([4:8-41],
66 (New (
67 ([4:8-41],
68 (CI ([4:8-41], "\\ExprTree"))),
69 [],
70 [([4:8-41],
71 (New (
72 ([4:8-41],
73 (CI
74 ([4:8-41], "\\ExprPos"))),
75 [],
76 [([Pos.none], (Int "4"));
77 ([Pos.none], (Int "7"));
78 ([Pos.none], (Int "4"));
79 ([Pos.none], (Int "40"))
81 None, [4:8-41])));
82 ([4:8-41],
83 (Lfun (
84 { f_span = [4:8-41];
85 f_annotation = ();
86 f_mode = Mstrict;
87 f_ret = ((), None);
88 f_name =
89 ([Pos.none],
90 ";anonymous");
91 f_tparams = [];
92 f_where_constraints =
93 [];
94 f_variadic =
95 FVnonVariadic;
96 f_params =
97 [{ param_annotation =
98 [4:3-7];
99 param_type_hint =
100 ((),
101 (Some ([4:3-7],
102 (Happly (
104 [4:3-7],
105 "\\Code"),
106 [])))));
107 param_is_variadic =
108 false;
109 param_pos = [4:3-7];
110 param_name = "$v";
111 param_expr = None;
112 param_callconv =
113 None;
114 param_user_attributes =
116 param_visibility =
117 None }
119 f_cap = ((), None);
120 f_unsafe_cap =
121 ((), None);
122 f_body =
123 { fb_ast =
124 [([4:8-41],
125 (Return
126 (Some ([4:8-41],
128 Call (
129 ([4:8-41],
130 (Obj_get (
131 ([4:8-41],
132 (Lvar
133 ([4:8-41],
134 $v))),
135 ([4:8-41],
137 ([4:8-41],
138 "lambdaLiteral"))),
139 OG_nullthrows
140 ))),
142 [([4:8-41],
143 (New (
144 ([4:8-41],
146 ([4:8-41],
147 "\\ExprPos"))),
149 [([Pos.none],
150 (Int "4"));
151 ([Pos.none],
152 (Int "7"));
153 ([Pos.none],
154 (Int "4"));
155 ([Pos.none],
156 (Int "40"))
157 ], None,
158 [4:8-41]
159 )));
160 ([Pos.none],
161 (ValCollection (
162 Vec,
163 None,
164 [])));
165 ([4:17-39],
166 (ValCollection (
167 Vec,
168 None,
169 [([4:17-39],
170 (Call (
171 ([4:17-39],
172 (Obj_get (
173 ([4:17-39],
174 (Lvar
175 ([4:17-39],
176 $v))),
177 ([4:17-39],
179 ([4:17-39],
180 "whileStatement"))),
181 OG_nullthrows
182 ))),
184 [([4:17-39],
185 (New (
186 ([4:17-39],
188 ([4:17-39],
189 "\\ExprPos"))),
191 [([Pos.none],
192 (Int "4"));
193 ([Pos.none],
194 (Int "16"));
195 ([Pos.none],
196 (Int "4"));
197 ([Pos.none],
198 (Int "38"))
199 ], None,
200 [4:17-39]
201 )));
202 ([4:23-27],
203 (Call (
204 ([4:23-27],
205 (Obj_get (
206 ([4:23-27],
207 (Lvar
208 ([4:23-27],
209 $v))),
210 ([4:23-27],
212 ([4:23-27],
213 "boolLiteral"))),
214 OG_nullthrows
215 ))),
217 [([4:23-27],
218 (New (
219 ([4:23-27],
221 ([4:23-27],
222 "\\ExprPos"))),
224 [([Pos.none],
225 (Int "4"));
226 ([Pos.none],
227 (Int "22"));
228 ([Pos.none],
229 (Int "4"));
230 ([Pos.none],
231 (Int "26"))
232 ], None,
233 [4:23-27]
234 )));
235 ([4:23-27],
236 True)],
237 None)));
238 ([4:31-36],
239 (ValCollection (
240 Vec,
241 None,
242 [([4:31-36],
243 (Call (
244 ([4:31-36],
245 (Obj_get (
246 ([4:31-36],
247 (Lvar
248 ([4:31-36],
249 $v))),
250 ([4:31-36],
252 ([4:31-36],
253 "call"))),
254 OG_nullthrows
255 ))),
257 [([4:31-36],
258 (New (
259 ([4:31-36],
261 ([4:31-36],
262 "\\ExprPos"))),
264 [([Pos.none],
265 (Int "4"));
266 ([Pos.none],
267 (Int "30"));
268 ([Pos.none],
269 (Int "4"));
270 ([Pos.none],
271 (Int "35"))
272 ], None,
273 [4:31-36]
274 )));
275 ([Pos.none],
276 (String
277 "foo"));
278 ([Pos.none],
279 (ValCollection (
280 Vec,
281 None,
282 [])))],
283 None)))]
284 )))],
285 None)))]
286 )))],
287 None))))))
289 fb_annotation = Named
291 f_fun_kind = FSync;
292 f_user_attributes = [];
293 f_file_attributes = [];
294 f_external = false;
295 f_namespace =
296 { Namespace_env.ns_ns_uses =
297 <opaque>;
298 ns_class_uses =
299 <opaque>;
300 ns_record_def_uses =
301 <opaque>;
302 ns_fun_uses =
303 <opaque>;
304 ns_const_uses =
305 <opaque>;
306 ns_name = None;
307 ns_auto_ns_map = [];
308 ns_is_codegen = false;
309 ns_disable_xhp_element_mangling =
310 false };
311 f_doc_comment = None;
312 f_static = false },
313 [])));
314 ([4:8-41],
315 (Lfun (
316 { f_span = [4:8-41];
317 f_annotation = ();
318 f_mode = Mstrict;
319 f_ret = ((), None);
320 f_name =
321 ([Pos.none],
322 ";anonymous");
323 f_tparams = [];
324 f_where_constraints =
326 f_variadic =
327 FVnonVariadic;
328 f_params = [];
329 f_cap = ((), None);
330 f_unsafe_cap =
331 ((), None);
332 f_body =
333 { fb_ast =
334 [([4:8-41],
335 (Return
336 (Some ([4:8-41],
338 Lfun (
339 { f_span =
340 [4:8-41];
341 f_annotation =
343 f_mode =
344 Mstrict;
345 f_ret =
347 (), None);
348 f_name =
350 [4:8-41],
351 ";anonymous");
352 f_tparams =
354 f_where_constraints =
356 f_variadic =
357 FVnonVariadic;
358 f_params =
360 f_cap =
362 (), None);
363 f_unsafe_cap =
365 (), None);
366 f_body =
367 { fb_ast =
368 [([4:17-39],
369 (While (
370 ([4:23-27],
371 True),
372 [([4:31-37],
373 (Expr
374 ([4:31-36],
375 (Call (
376 ([4:31-34],
378 ([4:31-34],
379 "\\foo"))),
380 [],
381 [], None
382 )))))])))
384 fb_annotation =
385 Named };
386 f_fun_kind =
387 FSync;
388 f_user_attributes =
390 f_file_attributes =
392 f_external =
393 false;
394 f_namespace =
395 { Namespace_env.ns_ns_uses =
396 <opaque>;
397 ns_class_uses =
398 <opaque>;
399 ns_record_def_uses =
400 <opaque>;
401 ns_fun_uses =
402 <opaque>;
403 ns_const_uses =
404 <opaque>;
405 ns_name =
406 None;
407 ns_auto_ns_map =
409 ns_is_codegen =
410 false;
411 ns_disable_xhp_element_mangling =
412 false };
413 f_doc_comment =
414 None;
415 f_static =
416 false },
417 []))))))
419 fb_annotation = Named
421 f_fun_kind = FSync;
422 f_user_attributes = [];
423 f_file_attributes = [];
424 f_external = false;
425 f_namespace =
426 { Namespace_env.ns_ns_uses =
427 <opaque>;
428 ns_class_uses =
429 <opaque>;
430 ns_record_def_uses =
431 <opaque>;
432 ns_fun_uses =
433 <opaque>;
434 ns_const_uses =
435 <opaque>;
436 ns_name = None;
437 ns_auto_ns_map = [];
438 ns_is_codegen = false;
439 ns_disable_xhp_element_mangling =
440 false };
441 f_doc_comment = None;
442 f_static = false },
443 [])))
445 None, [4:8-41]))))))
447 fb_annotation = Named };
448 f_fun_kind = FSync; f_user_attributes = [];
449 f_file_attributes = []; f_external = false;
450 f_namespace =
451 { Namespace_env.ns_ns_uses = <opaque>;
452 ns_class_uses = <opaque>;
453 ns_record_def_uses = <opaque>;
454 ns_fun_uses = <opaque>;
455 ns_const_uses = <opaque>; ns_name = None;
456 ns_auto_ns_map = []; ns_is_codegen = false;
457 ns_disable_xhp_element_mangling = false };
458 f_doc_comment = None; f_static = false },
459 []))),
460 [], [], None)))
461 }))))
463 fb_annotation = Named };
464 f_fun_kind = FSync; f_user_attributes = []; f_file_attributes = [];
465 f_external = false;
466 f_namespace =
467 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
468 ns_record_def_uses = <opaque>; ns_fun_uses = <opaque>;
469 ns_const_uses = <opaque>; ns_name = None; ns_auto_ns_map = [];
470 ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
471 f_doc_comment = None; f_static = false })