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
= [];
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
}
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 = [];
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
= [];
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 });
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
;
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");
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")]))))];
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;
69 (Some
((T
::TX
), [11:10-22],
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))),
76 f_fun_kind
= FSync
; f_user_attributes
= []; f_external
= false
;
77 f_doc_comment
= None };
78 fd_internal
= false
; fd_module
= None });
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
;
86 { f_span
= [14:1-18:2]; f_readonly_this
= None; f_annotation
= ();
87 f_readonly_ret
= None;
89 (((function
(TR
): void
)),
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");
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")]))))];
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;
114 (Some
(((function
(TR $x
): void
)), [17:10-38],
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
= [];
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;
132 (Some
((void
), [17:23-37],
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 });
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
;
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 = [];
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;
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)))
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)))
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 })