Add SetModule and fd_module defs
[hiphop-php.git] / hphp / hack / test / holes / expr_dependent.php.holes.exp
blob8c02242b401a8aed03a5efe64e9a228cb6fbc7d3
1 [(Class
2 { c_span = [3:1-8:2]; c_annotation = (); c_mode = Mstrict; c_final = false;
3 c_is_xhp = false; c_has_xhp_keyword = false; c_kind = (Cclass Abstract);
4 c_name = ([3:16-32], "\\WithTypeConstant"); c_tparams = []; c_extends = [];
5 c_uses = []; c_xhp_attr_uses = []; c_xhp_category = None; c_reqs = [];
6 c_implements = []; c_where_constraints = []; c_consts = [];
7 c_typeconsts =
8 [{ c_tconst_user_attributes = []; c_tconst_name = ([4:23-25], "TX");
9 c_tconst_kind = (TCAbstract { c_atc_as_constraint = None; c_atc_super_constraint = None; c_atc_default = None });
10 c_tconst_span = [4:3-26]; c_tconst_doc_comment = None; c_tconst_is_ctx = false }
12 c_vars = [];
13 c_methods =
14 [{ m_span = [6:3-44]; m_annotation = (); m_final = false; m_abstract = true;
15 m_static = false; m_readonly_this = false; m_visibility = Public;
16 m_name = ([6:28-31], "gen"); m_tparams = []; m_where_constraints = [];
17 m_params = []; m_ctxs = None; m_unsafe_ctxs = None; m_body = { fb_ast = [] };
18 m_fun_kind = FSync; m_user_attributes = []; m_readonly_ret = None;
19 m_ret = ((this::TX), (Some ([6:35-43], (Haccess (([6:35-39], Hthis), [([6:41-43], "TX")])))));
20 m_external = false; m_doc_comment = None };
21 { m_span = [7:3-51]; m_annotation = (); m_final = false; m_abstract = true;
22 m_static = false; m_readonly_this = false; m_visibility = Public;
23 m_name = ([7:28-31], "log"); m_tparams = []; m_where_constraints = [];
24 m_params =
25 [{ param_annotation = (this::TX); param_type_hint = ((this::TX), (Some ([7:32-40], (Haccess (([7:32-36], Hthis), [([7:38-40], "TX")])))));
26 param_is_variadic = false; param_pos = [7:41-43]; param_name = "$x";
27 param_expr = None; param_readonly = None; param_callconv = Pnormal;
28 param_user_attributes = []; param_visibility = None }
30 m_ctxs = None; m_unsafe_ctxs = None; m_body = { fb_ast = [] };
31 m_fun_kind = FSync; m_user_attributes = []; m_readonly_ret = None;
32 m_ret = ((void), (Some ([7:46-50], (Hprim Tvoid)))); m_external = false;
33 m_doc_comment = None }
35 c_attributes = []; c_xhp_children = []; c_xhp_attrs = [];
36 c_namespace =
37 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
38 ns_fun_uses = <opaque>; ns_const_uses = <opaque>; ns_name = None;
39 ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
40 c_user_attributes = []; c_file_attributes = []; c_enum = None;
41 c_doc_comment = None; c_emit_id = None; c_internal = false; c_module = None });
42 (Fun
43 { fd_namespace =
44 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
45 ns_fun_uses = <opaque>; ns_const_uses = <opaque>; ns_name = None;
46 ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
47 fd_file_attributes = []; fd_mode = Mstrict;
48 fd_fun =
49 { f_span = [10:1-12:2]; f_readonly_this = None; f_annotation = ();
50 f_readonly_ret = None; f_ret = ((TR), (Some ([10:54-56], (Habstr ("TR", [])))));
51 f_name = ([10:10-16], "\\my_gen");
52 f_tparams =
53 [{ tp_variance = Invariant; tp_name = ([10:17-18], "T"); tp_parameters = [];
54 tp_constraints = [(Constraint_as, ([10:22-38], (Happly (([10:22-38], "\\WithTypeConstant"), []))))];
55 tp_reified = Erased; tp_user_attributes = [] };
56 { tp_variance = Invariant; tp_name = ([10:40-42], "TR"); tp_parameters = []; tp_constraints = []; tp_reified = Erased; tp_user_attributes = [] }];
57 f_where_constraints = [(([10:63-65], (Habstr ("TR", []))), Constraint_eq, ([10:68-73], (Haccess (([10:68-69], (Habstr ("T", []))), [([10:71-73], "TX")]))))];
58 f_params =
59 [{ param_annotation = (T); param_type_hint = ((T), (Some ([10:44-45], (Habstr ("T", [])))));
60 param_is_variadic = false; param_pos = [10:46-51]; param_name = "$left";
61 param_expr = None; param_readonly = None; param_callconv = Pnormal;
62 param_user_attributes = []; param_visibility = None }
64 f_ctxs = None; f_unsafe_ctxs = None;
65 f_body =
66 { fb_ast =
67 [([11:3-23],
68 (Return
69 (Some ((T::TX), [11:10-22],
70 (Call (
71 (((function(): T::TX)), [11:10-20],
72 (Obj_get (((T), [11:10-15], (Lvar ([11:10-15], $left))), (((function(): T::TX)), [11:17-20], (Id ([11:17-20], "gen"))), OG_nullthrows, Is_method))),
73 [], [], None))))))
76 f_fun_kind = FSync; f_user_attributes = []; f_external = false;
77 f_doc_comment = None };
78 fd_internal = false; fd_module = None });
79 (Fun
80 { fd_namespace =
81 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
82 ns_fun_uses = <opaque>; ns_const_uses = <opaque>; ns_name = None;
83 ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
84 fd_file_attributes = []; fd_mode = Mstrict;
85 fd_fun =
86 { f_span = [14:1-18:2]; f_readonly_this = None; f_annotation = ();
87 f_readonly_ret = None;
88 f_ret =
89 (((function(TR): void)),
90 (Some ([14:54-16:9],
91 (Hfun
92 { hf_is_readonly = None; hf_param_tys = [([15:3-5], (Habstr ("TR", [])))];
93 hf_param_info = [(Some { hfparam_kind = Pnormal; hfparam_readonlyness = None })];
94 hf_variadic_ty = None; hf_ctxs = None; hf_return_ty = ([16:4-8], (Hprim Tvoid));
95 hf_is_readonly_return = None }))));
96 f_name = ([14:10-16], "\\my_log");
97 f_tparams =
98 [{ tp_variance = Invariant; tp_name = ([14:17-18], "T"); tp_parameters = [];
99 tp_constraints = [(Constraint_as, ([14:22-38], (Happly (([14:22-38], "\\WithTypeConstant"), []))))];
100 tp_reified = Erased; tp_user_attributes = [] };
101 { tp_variance = Invariant; tp_name = ([14:40-42], "TR"); tp_parameters = []; tp_constraints = []; tp_reified = Erased; tp_user_attributes = [] }];
102 f_where_constraints = [(([16:16-18], (Habstr ("TR", []))), Constraint_eq, ([16:21-26], (Haccess (([16:21-22], (Habstr ("T", []))), [([16:24-26], "TX")]))))];
103 f_params =
104 [{ param_annotation = (T); param_type_hint = ((T), (Some ([14:44-45], (Habstr ("T", [])))));
105 param_is_variadic = false; param_pos = [14:46-51]; param_name = "$left";
106 param_expr = None; param_readonly = None; param_callconv = Pnormal;
107 param_user_attributes = []; param_visibility = None }
109 f_ctxs = None; f_unsafe_ctxs = None;
110 f_body =
111 { fb_ast =
112 [([17:3-39],
113 (Return
114 (Some (((function(TR $x): void)), [17:10-38],
115 (Lfun (
116 { f_span = [17:10-38]; f_readonly_this = None;
117 f_annotation = (); f_readonly_ret = None;
118 f_ret = ((void), None); f_name = ([17:10-38], ";anonymous");
119 f_tparams = []; f_where_constraints = [];
120 f_params =
121 [{ param_annotation = (TR); param_type_hint = ((TR), (Some ([17:11-13], (Habstr ("TR", [])))));
122 param_is_variadic = false; param_pos = [17:14-16];
123 param_name = "$x"; param_expr = None;
124 param_readonly = None; param_callconv = Pnormal;
125 param_user_attributes = []; param_visibility = None }
127 f_ctxs = None; f_unsafe_ctxs = None;
128 f_body =
129 { fb_ast =
130 [([17:23-37],
131 (Return
132 (Some ((void), [17:23-37],
133 (Call (
134 (((function(T::TX $x): void)), [17:23-33],
135 (Obj_get (((T), [17:23-28], (Lvar ([17:23-28], $left))), (((function(T::TX $x): void)), [17:30-33], (Id ([17:30-33], "log"))), OG_nullthrows, Is_method))),
136 [], [(Pnormal, ((TR), [17:34-36], (Lvar ([17:34-36], $x))))], None))))))
139 f_fun_kind = FSync; f_user_attributes = [];
140 f_external = false; f_doc_comment = None },
141 [([17:23-28], $left)]))))))
144 f_fun_kind = FSync; f_user_attributes = []; f_external = false;
145 f_doc_comment = None };
146 fd_internal = false; fd_module = None });
147 (Fun
148 { fd_namespace =
149 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
150 ns_fun_uses = <opaque>; ns_const_uses = <opaque>; ns_name = None;
151 ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
152 fd_file_attributes = []; fd_mode = Mstrict;
153 fd_fun =
154 { f_span = [20:1-27:2]; f_readonly_this = None; f_annotation = ();
155 f_readonly_ret = None; f_ret = ((void), (Some ([20:62-66], (Hprim Tvoid))));
156 f_name = ([20:10-18], "\\my_error"); f_tparams = []; f_where_constraints = [];
157 f_params =
158 [{ param_annotation = (WithTypeConstant); param_type_hint = ((WithTypeConstant), (Some ([20:19-35], (Happly (([20:19-35], "\\WithTypeConstant"), [])))));
159 param_is_variadic = false; param_pos = [20:36-38]; param_name = "$x";
160 param_expr = None; param_readonly = None; param_callconv = Pnormal;
161 param_user_attributes = []; param_visibility = None };
162 { param_annotation = (WithTypeConstant); param_type_hint = ((WithTypeConstant), (Some ([20:40-56], (Happly (([20:40-56], "\\WithTypeConstant"), [])))));
163 param_is_variadic = false; param_pos = [20:57-59]; param_name = "$y";
164 param_expr = None; param_readonly = None; param_callconv = Pnormal;
165 param_user_attributes = []; param_visibility = None }
167 f_ctxs = None; f_unsafe_ctxs = None;
168 f_body =
169 { fb_ast =
170 [([21:3-21],
171 (Expr
172 ((<expr#1>::TX), [21:3-20],
173 (Binop ((Eq None), ((<expr#1>::TX), [21:3-7], (Lvar ([21:3-7], $gen))),
174 ((<expr#1>::TX), [21:10-20],
175 (Call ((((function<T as WithTypeConstant, TR>(<expr#1> as WithTypeConstant $left): <expr#1>::TX)), [21:10-16], (Id ([21:10-16], "\\my_gen"))),
176 [((<expr#1> as WithTypeConstant), ([21:10-16], (Happly (([Pos.none], "_"), [])))); ((<expr#1>::TX), ([21:10-16], (Happly (([Pos.none], "_"), []))))],
177 [(Pnormal, ((WithTypeConstant), [21:17-19], (Lvar ([21:17-19], $x))))], None)))
178 )))));
179 ([22:3-21],
180 (Expr
181 (((function(<expr#2>::TX): void)), [22:3-20],
182 (Binop ((Eq None), (((function(<expr#2>::TX): void)), [22:3-7], (Lvar ([22:3-7], $log))),
183 (((function(<expr#2>::TX): void)), [22:10-20],
184 (Call ((((function<T as WithTypeConstant, TR>(<expr#2> as WithTypeConstant $left): (function(<expr#2>::TX): void))), [22:10-16], (Id ([22:10-16], "\\my_log"))),
185 [((<expr#2> as WithTypeConstant), ([22:10-16], (Happly (([Pos.none], "_"), [])))); ((<expr#2>::TX), ([22:10-16], (Happly (([Pos.none], "_"), []))))],
186 [(Pnormal, ((WithTypeConstant), [22:17-19], (Lvar ([22:17-19], $y))))], None)))
187 )))));
188 ([26:3-14],
189 (Expr
190 ((void), [26:3-13],
191 (Call ((((function(<expr#2>::TX): void)), [26:3-7], (Lvar ([26:3-7], $log))),
192 [], [(Pnormal, ((<expr#1>::TX), [26:8-12], (Hole (((<expr#1>::TX), [26:8-12], (Lvar ([26:8-12], $gen))), (<expr#1>::TX), (<expr#2>::TX), Typing))))], None)))))
195 f_fun_kind = FSync; f_user_attributes = []; f_external = false;
196 f_doc_comment = None };
197 fd_internal = false; fd_module = None })