Support is and as
[hiphop-php.git] / hphp / hack / test / decl / coeffect_parameter_dependent.php.exp
blob137d62c2e55385a648c260ce3b49013546e81a07
1 [("\\A",
2 (Shallow_decl_defs.Class
3 { Shallow_decl_defs.sc_mode = Mstrict; sc_final = false;
4 sc_abstract = true; sc_is_xhp = false; sc_internal = false;
5 sc_has_xhp_keyword = false; sc_kind = (Cclass Abstract);
6 sc_module = None; sc_name = ([3:16-17], "\\A"); sc_tparams = [];
7 sc_where_constraints = []; sc_extends = []; sc_uses = [];
8 sc_xhp_attr_uses = []; sc_xhp_enum_values = {}; sc_req_extends = [];
9 sc_req_implements = []; sc_req_class = []; sc_implements = [];
10 sc_support_dynamic_type = false; sc_consts = [];
11 sc_typeconsts =
12 [{ Shallow_decl_defs.stc_name = ([4:22-23], "C");
13 stc_kind =
14 (Typing_defs.TCAbstract
15 { Typing_defs.atc_as_constraint = None;
16 atc_super_constraint = None; atc_default = None });
17 stc_enforceable = ([Pos.none], false); stc_reifiable = None;
18 stc_is_ctx = true }
20 sc_props = []; sc_sprops = []; sc_constructor = None;
21 sc_static_methods = []; sc_methods = []; sc_user_attributes = [];
22 sc_enum_type = None }));
23 ("\\f",
24 (Shallow_decl_defs.Fun
25 { Typing_defs.fe_deprecated = None; fe_module = None;
26 fe_internal = false;
27 fe_type =
28 (Rwitness_from_decl ([7:10-11]),
29 (Tfun
30 { ft_tparams =
31 [{ Typing_defs_core.tp_variance = Invariant;
32 tp_name = ([7:14-16], "T/$a"); tp_tparams = [];
33 tp_constraints =
34 [(Constraint_as,
35 (Rhint ([7:12-13]), (Tapply (([7:12-13], "\\A"), []))))];
36 tp_reified = Erased; tp_user_attributes = [] };
37 { Typing_defs_core.tp_variance = Invariant;
38 tp_name = ([7:18-23], "T/[$a::C]"); tp_tparams = [];
39 tp_constraints = []; tp_reified = Erased;
40 tp_user_attributes = [] }
42 ft_where_constraints =
43 [((Rhint ([7:18-23]), (Tgeneric ("T/[$a::C]", []))),
44 Constraint_eq,
45 (Rhint ([7:18-23]),
46 (Taccess
47 ((Rhint ([7:18-23]), (Tgeneric ("T/$a", []))),
48 [([7:22-23], "C")]))))
50 ft_params =
51 [{ fp_pos = [7:14-16]; fp_name = (Some "$a");
52 fp_type =
53 { et_enforced = Typing_defs_core.Unenforced;
54 et_type = (Rhint ([7:14-16]), (Tgeneric ("T/$a", []))) };
55 fp_flags =
56 (make_fp_flags ~accept_disposable:false ~has_default:false
57 ~mode:Typing_defs_core.FPnormal ~ifc_external:false
58 ~ifc_can_call:false ~readonly:false);
61 ft_implicit_params =
62 { capability =
63 (CapTy (Rhint ([7:18-23]), (Tgeneric ("T/[$a::C]", [])))) };
64 ft_ret =
65 { et_enforced = Typing_defs_core.Unenforced;
66 et_type = (Rhint ([7:26-30]), (Tprim Tvoid)) };
67 ft_flags =
68 (make_ft_flags FSync ~return_disposable:false
69 ~returns_readonly:false ~support_dynamic_type:false
70 ~readonly_this:false ~is_memoized:false ~variadic:false);
71 ft_ifc_decl = FDPolicied {PUBLIC} }));
72 fe_pos = [7:10-11]; fe_php_std_lib = false;
73 fe_support_dynamic_type = false }));
74 ("\\f_option",
75 (Shallow_decl_defs.Fun
76 { Typing_defs.fe_deprecated = None; fe_module = None;
77 fe_internal = false;
78 fe_type =
79 (Rwitness_from_decl ([9:10-18]),
80 (Tfun
81 { ft_tparams =
82 [{ Typing_defs_core.tp_variance = Invariant;
83 tp_name = ([9:22-24], "T/$a"); tp_tparams = [];
84 tp_constraints =
85 [(Constraint_as,
86 (Rhint ([9:20-21]), (Tapply (([9:20-21], "\\A"), []))))];
87 tp_reified = Erased; tp_user_attributes = [] };
88 { Typing_defs_core.tp_variance = Invariant;
89 tp_name = ([9:26-31], "T/[$a::C]"); tp_tparams = [];
90 tp_constraints = []; tp_reified = Erased;
91 tp_user_attributes = [] }
93 ft_where_constraints =
94 [((Rhint ([9:26-31]), (Tgeneric ("T/[$a::C]", []))),
95 Constraint_eq,
96 (Rhint ([9:26-31]),
97 (Taccess
98 ((Rhint ([9:26-31]), (Tgeneric ("T/$a", []))),
99 [([9:30-31], "C")]))))
101 ft_params =
102 [{ fp_pos = [9:22-24]; fp_name = (Some "$a");
103 fp_type =
104 { et_enforced = Typing_defs_core.Unenforced;
105 et_type =
106 (Rhint ([9:19-21]),
107 (Toption (Rhint ([9:22-24]), (Tgeneric ("T/$a", [])))))
109 fp_flags =
110 (make_fp_flags ~accept_disposable:false ~has_default:false
111 ~mode:Typing_defs_core.FPnormal ~ifc_external:false
112 ~ifc_can_call:false ~readonly:false);
115 ft_implicit_params =
116 { capability =
117 (CapTy (Rhint ([9:26-31]), (Tgeneric ("T/[$a::C]", [])))) };
118 ft_ret =
119 { et_enforced = Typing_defs_core.Unenforced;
120 et_type = (Rhint ([9:34-38]), (Tprim Tvoid)) };
121 ft_flags =
122 (make_ft_flags FSync ~return_disposable:false
123 ~returns_readonly:false ~support_dynamic_type:false
124 ~readonly_this:false ~is_memoized:false ~variadic:false);
125 ft_ifc_decl = FDPolicied {PUBLIC} }));
126 fe_pos = [9:10-18]; fe_php_std_lib = false;
127 fe_support_dynamic_type = false }));
128 ("\\f_like",
129 (Shallow_decl_defs.Fun
130 { Typing_defs.fe_deprecated = None; fe_module = None;
131 fe_internal = false;
132 fe_type =
133 (Rwitness_from_decl ([11:10-16]),
134 (Tfun
135 { ft_tparams =
136 [{ Typing_defs_core.tp_variance = Invariant;
137 tp_name = ([11:20-22], "T/$a"); tp_tparams = [];
138 tp_constraints =
139 [(Constraint_as,
140 (Rhint ([11:18-19]), (Tapply (([11:18-19], "\\A"), []))))];
141 tp_reified = Erased; tp_user_attributes = [] };
142 { Typing_defs_core.tp_variance = Invariant;
143 tp_name = ([11:24-29], "T/[$a::C]"); tp_tparams = [];
144 tp_constraints = []; tp_reified = Erased;
145 tp_user_attributes = [] }
147 ft_where_constraints =
148 [((Rhint ([11:24-29]), (Tgeneric ("T/[$a::C]", []))),
149 Constraint_eq,
150 (Rhint ([11:24-29]),
151 (Taccess
152 ((Rhint ([11:24-29]), (Tgeneric ("T/$a", []))),
153 [([11:28-29], "C")]))))
155 ft_params =
156 [{ fp_pos = [11:20-22]; fp_name = (Some "$a");
157 fp_type =
158 { et_enforced = Typing_defs_core.Unenforced;
159 et_type =
160 (Rhint ([11:17-19]),
161 (Tlike (Rhint ([11:20-22]), (Tgeneric ("T/$a", [])))))
163 fp_flags =
164 (make_fp_flags ~accept_disposable:false ~has_default:false
165 ~mode:Typing_defs_core.FPnormal ~ifc_external:false
166 ~ifc_can_call:false ~readonly:false);
169 ft_implicit_params =
170 { capability =
171 (CapTy (Rhint ([11:24-29]), (Tgeneric ("T/[$a::C]", [])))) };
172 ft_ret =
173 { et_enforced = Typing_defs_core.Unenforced;
174 et_type = (Rhint ([11:32-36]), (Tprim Tvoid)) };
175 ft_flags =
176 (make_ft_flags FSync ~return_disposable:false
177 ~returns_readonly:false ~support_dynamic_type:false
178 ~readonly_this:false ~is_memoized:false ~variadic:false);
179 ft_ifc_decl = FDPolicied {PUBLIC} }));
180 fe_pos = [11:10-16]; fe_php_std_lib = false;
181 fe_support_dynamic_type = false }));
182 ("\\f_like_option",
183 (Shallow_decl_defs.Fun
184 { Typing_defs.fe_deprecated = None; fe_module = None;
185 fe_internal = false;
186 fe_type =
187 (Rwitness_from_decl ([13:10-23]),
188 (Tfun
189 { ft_tparams =
190 [{ Typing_defs_core.tp_variance = Invariant;
191 tp_name = ([13:28-30], "T/$a"); tp_tparams = [];
192 tp_constraints =
193 [(Constraint_as,
194 (Rhint ([13:26-27]), (Tapply (([13:26-27], "\\A"), []))))];
195 tp_reified = Erased; tp_user_attributes = [] };
196 { Typing_defs_core.tp_variance = Invariant;
197 tp_name = ([13:32-37], "T/[$a::C]"); tp_tparams = [];
198 tp_constraints = []; tp_reified = Erased;
199 tp_user_attributes = [] }
201 ft_where_constraints =
202 [((Rhint ([13:32-37]), (Tgeneric ("T/[$a::C]", []))),
203 Constraint_eq,
204 (Rhint ([13:32-37]),
205 (Taccess
206 ((Rhint ([13:32-37]), (Tgeneric ("T/$a", []))),
207 [([13:36-37], "C")]))))
209 ft_params =
210 [{ fp_pos = [13:28-30]; fp_name = (Some "$a");
211 fp_type =
212 { et_enforced = Typing_defs_core.Unenforced;
213 et_type =
214 (Rhint ([13:24-27]),
215 (Tlike
216 (Rhint ([13:25-27]),
217 (Toption
218 (Rhint ([13:28-30]), (Tgeneric ("T/$a", [])))))))
220 fp_flags =
221 (make_fp_flags ~accept_disposable:false ~has_default:false
222 ~mode:Typing_defs_core.FPnormal ~ifc_external:false
223 ~ifc_can_call:false ~readonly:false);
226 ft_implicit_params =
227 { capability =
228 (CapTy (Rhint ([13:32-37]), (Tgeneric ("T/[$a::C]", [])))) };
229 ft_ret =
230 { et_enforced = Typing_defs_core.Unenforced;
231 et_type = (Rhint ([13:40-44]), (Tprim Tvoid)) };
232 ft_flags =
233 (make_ft_flags FSync ~return_disposable:false
234 ~returns_readonly:false ~support_dynamic_type:false
235 ~readonly_this:false ~is_memoized:false ~variadic:false);
236 ft_ifc_decl = FDPolicied {PUBLIC} }));
237 fe_pos = [13:10-23]; fe_php_std_lib = false;
238 fe_support_dynamic_type = false }))
241 They matched!