Make `param_kind` non-optional
[hiphop-php.git] / hphp / hack / test / nast / expression_tree_function_order.php.exp
blobaf1e932f569b70b8b4b581938c4bdd145f192e8d
1 [(Fun
2 { fd_namespace =
3 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
4 ns_record_def_uses = <opaque>; ns_fun_uses = <opaque>; ns_const_uses = <opaque>;
5 ns_name = None; ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
6 fd_file_attributes = []; fd_mode = Mstrict;
7 fd_fun =
8 { f_span = [3:1-12:2]; f_readonly_this = None; f_annotation = ();
9 f_readonly_ret = None; f_ret = ((), (Some ([3:18-22], (Hprim Tvoid))));
10 f_name = ([3:10-14], "\\test"); f_tparams = []; f_where_constraints = [];
11 f_variadic = FVnonVariadic; f_params = []; f_ctxs = None; f_unsafe_ctxs = None;
12 f_body =
13 { fb_ast =
14 [([4:3-11:6],
15 (Expr
16 ((), [4:3-11:5],
17 (ExpressionTree
18 { et_hint = ([4:3-7], (Happly (([4:3-7], "\\Code"), [])));
19 et_splices = [];
20 et_function_pointers =
21 [([7:9-12], (Expr ((), [7:9-12], (Binop ((Eq None), ((), [7:9-12], (Lvar ([7:9-12], $0fp0))), ((), [7:9-12], (FunctionPointer ((FP_id ([7:9-12], "\\baz")), []))))))));
22 ([8:9-12], (Expr ((), [8:9-12], (Binop ((Eq None), ((), [8:9-12], (Lvar ([8:9-12], $0fp1))), ((), [8:9-12], (FunctionPointer ((FP_id ([8:9-12], "\\qux")), []))))))));
23 ([6:7-10], (Expr ((), [6:7-10], (Binop ((Eq None), ((), [6:7-10], (Lvar ([6:7-10], $0fp2))), ((), [6:7-10], (FunctionPointer ((FP_id ([6:7-10], "\\bar")), []))))))));
24 ([10:7-11], (Expr ((), [10:7-11], (Binop ((Eq None), ((), [10:7-11], (Lvar ([10:7-11], $0fp3))), ((), [10:7-11], (FunctionPointer ((FP_id ([10:7-11], "\\qaal")), []))))))));
25 ([5:5-8], (Expr ((), [5:5-8], (Binop ((Eq None), ((), [5:5-8], (Lvar ([5:5-8], $0fp4))), ((), [5:5-8], (FunctionPointer ((FP_id ([5:5-8], "\\foo")), []))))))))];
26 et_virtualized_expr =
27 ((), [5:5-11:4],
28 (Call (
29 ((), [5:5-11:4],
30 (Efun (
31 { f_span = [5:5-11:4]; f_readonly_this = None;
32 f_annotation = (); f_readonly_ret = None;
33 f_ret = ((), None); f_name = ([5:5-11:4], ";anonymous");
34 f_tparams = []; f_where_constraints = [];
35 f_variadic = FVnonVariadic; f_params = [];
36 f_ctxs = None; f_unsafe_ctxs = None;
37 f_body =
38 { fb_ast =
39 [([5:5-11:4],
40 (Return
41 (Some ((), [5:5-11:4],
42 (Call (
43 ((), [5:5-11:4],
44 (Call (((), [5:5-11:4], (Class_const (((), [5:5-11:4], (CI ([5:5-11:4], "\\Code"))), ([5:5-11:4], "symbolType")))),
45 [], [((), [5:5-8], (Lvar ([5:5-8], $0fp4)))], None))),
46 [],
47 [((), [6:7-9:8],
48 (Call (
49 ((), [6:7-9:8],
50 (Call (((), [6:7-9:8], (Class_const (((), [6:7-9:8], (CI ([6:7-9:8], "\\Code"))), ([6:7-9:8], "symbolType")))),
51 [], [((), [6:7-10], (Lvar ([6:7-10], $0fp2)))], None))),
52 [],
53 [((), [7:9-14],
54 (Call (
55 ((), [7:9-14],
56 (Call (((), [7:9-14], (Class_const (((), [7:9-14], (CI ([7:9-14], "\\Code"))), ([7:9-14], "symbolType")))),
57 [], [((), [7:9-12], (Lvar ([7:9-12], $0fp0)))], None))),
58 [], [], None)));
59 ((), [8:9-14],
60 (Call (
61 ((), [8:9-14],
62 (Call (((), [8:9-14], (Class_const (((), [8:9-14], (CI ([8:9-14], "\\Code"))), ([8:9-14], "symbolType")))),
63 [], [((), [8:9-12], (Lvar ([8:9-12], $0fp1)))], None))),
64 [], [], None)))
66 None)));
67 ((), [10:7-13],
68 (Call (
69 ((), [10:7-13],
70 (Call (((), [10:7-13], (Class_const (((), [10:7-13], (CI ([10:7-13], "\\Code"))), ([10:7-13], "symbolType")))),
71 [], [((), [10:7-11], (Lvar ([10:7-11], $0fp3)))], None))),
72 [], [], None)))
74 None))))))
77 f_fun_kind = FSync; f_user_attributes = [];
78 f_external = false; f_doc_comment = None },
79 [([5:5-11:4], $0fp0); ([5:5-11:4], $0fp1); ([5:5-11:4], $0fp2); ([5:5-11:4], $0fp3); ([5:5-11:4], $0fp4)]))),
80 [], [], None)));
81 et_runtime_expr =
82 ((), [5:5-11:4],
83 (Call (
84 ((), [5:5-11:4],
85 (Lfun (
86 { f_span = [5:5-11:4]; f_readonly_this = None;
87 f_annotation = (); f_readonly_ret = None;
88 f_ret = ((), None); f_name = ([5:5-11:4], ";anonymous");
89 f_tparams = []; f_where_constraints = [];
90 f_variadic = FVnonVariadic; f_params = [];
91 f_ctxs = None; f_unsafe_ctxs = None;
92 f_body =
93 { fb_ast =
94 [([5:5-11:4],
95 (Return
96 (Some ((), [5:5-11:4],
97 (Call (((), [5:5-11:4], (Class_const (((), [5:5-11:4], (CI ([5:5-11:4], "\\Code"))), ([5:5-11:4], "makeTree")))),
98 [],
99 [((), [5:5-11:4],
100 (Shape
101 [((SFlit_str ([5:5-11:4], "path")), ((), [5:5-11:4], (Id ([5:5-11:4], "\\__FILE__"))));
102 ((SFlit_str ([5:5-11:4], "start_line")), ((), [5:5-11:4], (Int "5"))); (
103 (SFlit_str ([5:5-11:4], "end_line")), ((), [5:5-11:4], (Int "11"))); (
104 (SFlit_str ([5:5-11:4], "start_column")), ((), [5:5-11:4], (Int "4"))); (
105 (SFlit_str ([5:5-11:4], "end_column")), ((), [5:5-11:4], (Int "3")))]));
106 ((), [5:5-11:4],
107 (Shape
108 [((SFlit_str ([5:5-11:4], "splices")), ((), [5:5-11:4], (KeyValCollection (Dict, None, []))));
109 ((SFlit_str ([5:5-11:4], "functions")),
110 ((), [5:5-11:4],
111 (ValCollection (Vec, None,
112 [((), [7:9-12], (Lvar ([7:9-12], $0fp0))); (
113 (), [8:9-12], (Lvar ([8:9-12], $0fp1))); (
114 (), [6:7-10], (Lvar ([6:7-10], $0fp2))); (
115 (), [10:7-11], (Lvar ([10:7-11], $0fp3))); (
116 (), [5:5-8], (Lvar ([5:5-8], $0fp4)))]
117 ))));
118 ((SFlit_str ([5:5-11:4], "static_methods")), ((), [5:5-11:4], (ValCollection (Vec, None, []))))]));
119 ((), [5:5-11:4],
120 (Lfun (
121 { f_span = [5:5-11:4];
122 f_readonly_this = None;
123 f_annotation = ();
124 f_readonly_ret = None;
125 f_ret = ((), None);
126 f_name = ([5:5-11:4], ";anonymous");
127 f_tparams = [];
128 f_where_constraints = [];
129 f_variadic = FVnonVariadic;
130 f_params =
131 [{ param_annotation = ();
132 param_type_hint = ((), (Some ([4:3-7], (Happly (([4:3-7], "\\Code"), [])))));
133 param_is_variadic = false;
134 param_pos = [4:3-7];
135 param_name = "$0v";
136 param_expr = None;
137 param_readonly = None;
138 param_callconv = Pnormal;
139 param_user_attributes = [];
140 param_visibility = None }
142 f_ctxs = None;
143 f_unsafe_ctxs = None;
144 f_body =
145 { fb_ast =
146 [([5:5-11:4],
147 (Return
148 (Some (
149 (), [5:5-11:4],
150 (Call (
151 ((), [5:5-11:4],
152 (Obj_get (((), [5:5-11:4], (Lvar ([5:5-11:4], $0v))), ((), [5:5-11:4], (Id ([5:5-11:4], "visitCall"))), OG_nullthrows, false))),
154 [((), [5:5-11:4],
156 Shape
157 [((SFlit_str ([5:5-11:4], "path")), ((), [5:5-11:4], (Id ([5:5-11:4], "\\__FILE__"))));
158 ((SFlit_str ([5:5-11:4], "start_line")), ((), [5:5-11:4], (Int "5")));
159 ((SFlit_str ([5:5-11:4], "end_line")), ((), [5:5-11:4], (Int "11")));
160 ((SFlit_str ([5:5-11:4], "start_column")), ((), [5:5-11:4], (Int "4")));
161 ((SFlit_str ([5:5-11:4], "end_column")), ((), [5:5-11:4], (Int "3")))]));
163 (), [5:5-11:4],
165 Call (
166 ((), [5:5-11:4],
167 (Obj_get ((
168 (), [5:5-11:4], (Lvar ([5:5-11:4], $0v))), (
169 (), [5:5-11:4], (Id ([5:5-11:4], "visitGlobalFunction"))), OG_nullthrows, false))),
171 [((), [5:5-11:4],
172 (Shape
173 [((SFlit_str ([5:5-11:4], "path")), ((), [5:5-11:4], (Id ([5:5-11:4], "\\__FILE__"))));
174 ((SFlit_str ([5:5-11:4], "start_line")), ((), [5:5-11:4], (Int "5")));
175 ((SFlit_str ([5:5-11:4], "end_line")), ((), [5:5-11:4], (Int "11")));
176 ((SFlit_str ([5:5-11:4], "start_column")), ((), [5:5-11:4], (Int "4")));
177 ((SFlit_str ([5:5-11:4], "end_column")), ((), [5:5-11:4], (Int "3")))])); (
178 (), [5:5-8], (Lvar ([5:5-8], $0fp4)))], None)));
180 (), [6:7-10:13],
182 ValCollection (Vec, None,
183 [((), [6:7-9:8],
184 (Call (
185 ((), [6:7-9:8],
186 (Obj_get (((), [6:7-9:8], (Lvar ([6:7-9:8], $0v))), ((), [6:7-9:8], (Id ([6:7-9:8], "visitCall"))), OG_nullthrows, false))),
188 [((), [6:7-9:8],
189 (Shape
190 [((SFlit_str ([6:7-9:8], "path")), ((), [6:7-9:8], (Id ([6:7-9:8], "\\__FILE__"))));
191 ((SFlit_str ([6:7-9:8], "start_line")), ((), [6:7-9:8], (Int "6")));
192 ((SFlit_str ([6:7-9:8], "end_line")), ((), [6:7-9:8], (Int "9")));
193 ((SFlit_str ([6:7-9:8], "start_column")), ((), [6:7-9:8], (Int "6")));
194 ((SFlit_str ([6:7-9:8], "end_column")), ((), [6:7-9:8], (Int "7")))]));
195 ((), [6:7-9:8],
196 (Call (
197 ((), [6:7-9:8],
198 (Obj_get ((
199 (), [6:7-9:8], (Lvar ([6:7-9:8], $0v))), (
200 (), [6:7-9:8], (Id ([6:7-9:8], "visitGlobalFunction"))), OG_nullthrows, false))),
202 [((), [6:7-9:8],
203 (Shape
204 [((SFlit_str ([6:7-9:8], "path")), ((), [6:7-9:8], (Id ([6:7-9:8], "\\__FILE__"))));
205 ((SFlit_str ([6:7-9:8], "start_line")), ((), [6:7-9:8], (Int "6")));
206 ((SFlit_str ([6:7-9:8], "end_line")), ((), [6:7-9:8], (Int "9")));
207 ((SFlit_str ([6:7-9:8], "start_column")), ((), [6:7-9:8], (Int "6")));
208 ((SFlit_str ([6:7-9:8], "end_column")), ((), [6:7-9:8], (Int "7")))])); (
209 (), [6:7-10], (Lvar ([6:7-10], $0fp2)))], None)));
210 ((), [7:9-8:14],
211 (ValCollection (Vec, None,
212 [((), [7:9-14],
213 (Call (
214 ((), [7:9-14],
215 (Obj_get (((), [7:9-14], (Lvar ([7:9-14], $0v))), ((), [7:9-14], (Id ([7:9-14], "visitCall"))), OG_nullthrows, false))),
217 [((), [7:9-14],
218 (Shape
219 [((SFlit_str ([7:9-14], "path")), ((), [7:9-14], (Id ([7:9-14], "\\__FILE__"))));
220 ((SFlit_str ([7:9-14], "start_line")), ((), [7:9-14], (Int "7"))); (
221 (SFlit_str ([7:9-14], "end_line")), ((), [7:9-14], (Int "7")));
222 ((SFlit_str ([7:9-14], "start_column")), ((), [7:9-14], (Int "8")));
223 ((SFlit_str ([7:9-14], "end_column")), ((), [7:9-14], (Int "13")))]));
224 ((), [7:9-14],
225 (Call (
226 ((), [7:9-14],
227 (Obj_get (((), [7:9-14], (Lvar ([7:9-14], $0v))), ((), [7:9-14], (Id ([7:9-14], "visitGlobalFunction"))), OG_nullthrows, false))),
229 [((), [7:9-14],
230 (Shape
231 [((SFlit_str ([7:9-14], "path")), ((), [7:9-14], (Id ([7:9-14], "\\__FILE__"))));
232 ((SFlit_str ([7:9-14], "start_line")), ((), [7:9-14], (Int "7"))); (
233 (SFlit_str ([7:9-14], "end_line")), ((), [7:9-14], (Int "7")));
234 ((SFlit_str ([7:9-14], "start_column")), ((), [7:9-14], (Int "8")));
235 ((SFlit_str ([7:9-14], "end_column")), ((), [7:9-14], (Int "13")))])); (
236 (), [7:9-12], (Lvar ([7:9-12], $0fp0)))], None))); (
237 (), [Pos.none], (ValCollection (Vec, None, [])))], None)));
238 ((), [8:9-14],
239 (Call (
240 ((), [8:9-14],
241 (Obj_get (((), [8:9-14], (Lvar ([8:9-14], $0v))), ((), [8:9-14], (Id ([8:9-14], "visitCall"))), OG_nullthrows, false))),
243 [((), [8:9-14],
244 (Shape
245 [((SFlit_str ([8:9-14], "path")), ((), [8:9-14], (Id ([8:9-14], "\\__FILE__"))));
246 ((SFlit_str ([8:9-14], "start_line")), ((), [8:9-14], (Int "8"))); (
247 (SFlit_str ([8:9-14], "end_line")), ((), [8:9-14], (Int "8")));
248 ((SFlit_str ([8:9-14], "start_column")), ((), [8:9-14], (Int "8")));
249 ((SFlit_str ([8:9-14], "end_column")), ((), [8:9-14], (Int "13")))]));
250 ((), [8:9-14],
251 (Call (
252 ((), [8:9-14],
253 (Obj_get (((), [8:9-14], (Lvar ([8:9-14], $0v))), ((), [8:9-14], (Id ([8:9-14], "visitGlobalFunction"))), OG_nullthrows, false))),
255 [((), [8:9-14],
256 (Shape
257 [((SFlit_str ([8:9-14], "path")), ((), [8:9-14], (Id ([8:9-14], "\\__FILE__"))));
258 ((SFlit_str ([8:9-14], "start_line")), ((), [8:9-14], (Int "8"))); (
259 (SFlit_str ([8:9-14], "end_line")), ((), [8:9-14], (Int "8")));
260 ((SFlit_str ([8:9-14], "start_column")), ((), [8:9-14], (Int "8")));
261 ((SFlit_str ([8:9-14], "end_column")), ((), [8:9-14], (Int "13")))])); (
262 (), [8:9-12], (Lvar ([8:9-12], $0fp1)))], None))); (
263 (), [Pos.none], (ValCollection (Vec, None, [])))], None)))])))], None)));
264 ((), [10:7-13],
265 (Call (
266 ((), [10:7-13],
267 (Obj_get (((), [10:7-13], (Lvar ([10:7-13], $0v))), ((), [10:7-13], (Id ([10:7-13], "visitCall"))), OG_nullthrows, false))),
269 [((), [10:7-13],
270 (Shape
271 [((SFlit_str ([10:7-13], "path")), ((), [10:7-13], (Id ([10:7-13], "\\__FILE__"))));
272 ((SFlit_str ([10:7-13], "start_line")), ((), [10:7-13], (Int "10")));
273 ((SFlit_str ([10:7-13], "end_line")), ((), [10:7-13], (Int "10")));
274 ((SFlit_str ([10:7-13], "start_column")), ((), [10:7-13], (Int "6")));
275 ((SFlit_str ([10:7-13], "end_column")), ((), [10:7-13], (Int "12")))]));
276 ((), [10:7-13],
277 (Call (
278 ((), [10:7-13],
279 (Obj_get ((
280 (), [10:7-13], (Lvar ([10:7-13], $0v))), (
281 (), [10:7-13], (Id ([10:7-13], "visitGlobalFunction"))), OG_nullthrows, false))),
283 [((), [10:7-13],
284 (Shape
285 [((SFlit_str ([10:7-13], "path")), ((), [10:7-13], (Id ([10:7-13], "\\__FILE__"))));
286 ((SFlit_str ([10:7-13], "start_line")), ((), [10:7-13], (Int "10")));
287 ((SFlit_str ([10:7-13], "end_line")), ((), [10:7-13], (Int "10")));
288 ((SFlit_str ([10:7-13], "start_column")), ((), [10:7-13], (Int "6")));
289 ((SFlit_str ([10:7-13], "end_column")), ((), [10:7-13], (Int "12")))])); (
290 (), [10:7-11], (Lvar ([10:7-11], $0fp3)))], None))); (
291 (), [Pos.none], (ValCollection (Vec, None, [])))], None)))])))],
292 None))))))
295 f_fun_kind = FSync;
296 f_user_attributes = [];
297 f_external = false;
298 f_doc_comment = None },
299 [([10:7-11], $0fp3); ([8:9-12], $0fp1); ([7:9-12], $0fp0); ([6:7-10], $0fp2); ([5:5-8], $0fp4)])))
301 None))))))
304 f_fun_kind = FSync; f_user_attributes = [];
305 f_external = false; f_doc_comment = None },
306 [([10:7-11], $0fp3); ([8:9-12], $0fp1); (
307 [7:9-12], $0fp0); ([6:7-10], $0fp2); (
308 [5:5-8], $0fp4); ([5:5-8], $0fp4); ([10:7-11], $0fp3); (
309 [6:7-10], $0fp2); ([8:9-12], $0fp1); (
310 [7:9-12], $0fp0)]
311 ))),
312 [], [], None)))
313 }))))
316 f_fun_kind = FSync; f_user_attributes = []; f_external = false;
317 f_doc_comment = None }