represent calls to `unsafe_cast` as TAST `Hole`s
[hiphop-php.git] / hphp / hack / test / holes / call_generic.php.holes.exp
blob7526e35aec4621cb472b5542db0e118ead3e6018
1 [(Fun
2 { f_span = [3:1-56]; f_readonly_this = None; f_annotation = (); f_mode = Mstrict;
3 f_readonly_ret = None; f_ret = ((void), (Some ([3:49-53], (Hprim Tvoid))));
4 f_name = ([3:10-25], "\\generic_bounded");
5 f_tparams =
6 [{ tp_variance = Invariant; tp_name = ([3:26-27], "T"); tp_parameters = []; tp_constraints = [(Constraint_as, ([3:31-34], (Hprim Tnum)))]; tp_reified = Erased; tp_user_attributes = [] }];
7 f_where_constraints = []; f_variadic = FVnonVariadic;
8 f_params =
9 [{ param_annotation = ([3:38-40], T); param_type_hint = ((T), (Some ([3:36-37], (Habstr ("T", [])))));
10 param_is_variadic = false; param_pos = [3:38-40]; param_name = "$x";
11 param_expr = None; param_readonly = None; param_callconv = None;
12 param_user_attributes = []; param_visibility = None };
13 { param_annotation = ([3:44-46], T); param_type_hint = ((T), (Some ([3:42-43], (Habstr ("T", [])))));
14 param_is_variadic = false; param_pos = [3:44-46]; param_name = "$y";
15 param_expr = None; param_readonly = None; param_callconv = None;
16 param_user_attributes = []; param_visibility = None }
18 f_ctxs = None; f_unsafe_ctxs = None; f_body = { fb_ast = [([Pos.none], Noop)]; fb_annotation = () };
19 f_fun_kind = FSync; f_user_attributes = []; f_file_attributes = [];
20 f_external = false;
21 f_namespace =
22 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
23 ns_record_def_uses = <opaque>; ns_fun_uses = <opaque>; ns_const_uses = <opaque>;
24 ns_name = None; ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
25 f_doc_comment = None });
26 (Fun
27 { f_span = [5:1-8:2]; f_readonly_this = None; f_annotation = ();
28 f_mode = Mstrict; f_readonly_ret = None; f_ret = ((void), (Some ([5:43-47], (Hprim Tvoid))));
29 f_name = ([5:10-22], "\\call_generic"); f_tparams = []; f_where_constraints = [];
30 f_variadic = FVnonVariadic;
31 f_params =
32 [{ param_annotation = ([5:27-29], int); param_type_hint = ((int), (Some ([5:23-26], (Hprim Tint))));
33 param_is_variadic = false; param_pos = [5:27-29]; param_name = "$x";
34 param_expr = None; param_readonly = None; param_callconv = None;
35 param_user_attributes = []; param_visibility = None };
36 { param_annotation = ([5:38-40], string); param_type_hint = ((string), (Some ([5:31-37], (Hprim Tstring))));
37 param_is_variadic = false; param_pos = [5:38-40]; param_name = "$y";
38 param_expr = None; param_readonly = None; param_callconv = None;
39 param_user_attributes = []; param_visibility = None }
41 f_ctxs = None; f_unsafe_ctxs = None;
42 f_body =
43 { fb_ast =
44 [([7:3-27],
45 (Expr
46 (([7:3-26], void),
47 (Call ((([7:3-18], (function<T as num>(int $x, int $y): void)), (Id ([7:3-18], "\\generic_bounded"))),
48 [((int), ([7:3-18], (Happly (([Pos.none], "_"), []))))],
49 [(([7:19-21], int), (Lvar ([7:19-21], $x))); (([7:23-25], string), (Hole ((([7:23-25], string), (Lvar ([7:23-25], $y))), (string), (int), Typing)))], None)))))
51 fb_annotation = () };
52 f_fun_kind = FSync; f_user_attributes = []; f_file_attributes = [];
53 f_external = false;
54 f_namespace =
55 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
56 ns_record_def_uses = <opaque>; ns_fun_uses = <opaque>; ns_const_uses = <opaque>;
57 ns_name = None; ns_auto_ns_map = []; ns_is_codegen = false;
58 ns_disable_xhp_element_mangling = false };
59 f_doc_comment = None });
60 (Fun
61 { f_span = [10:1-13:2]; f_readonly_this = None; f_annotation = ();
62 f_mode = Mstrict; f_readonly_ret = None; f_ret = ((void), (Some ([10:48-52], (Hprim Tvoid))));
63 f_name = ([10:10-27], "\\call_generic_cast"); f_tparams = [];
64 f_where_constraints = []; f_variadic = FVnonVariadic;
65 f_params =
66 [{ param_annotation = ([10:32-34], int); param_type_hint = ((int), (Some ([10:28-31], (Hprim Tint))));
67 param_is_variadic = false; param_pos = [10:32-34]; param_name = "$x";
68 param_expr = None; param_readonly = None; param_callconv = None;
69 param_user_attributes = []; param_visibility = None };
70 { param_annotation = ([10:43-45], string); param_type_hint = ((string), (Some ([10:36-42], (Hprim Tstring))));
71 param_is_variadic = false; param_pos = [10:43-45]; param_name = "$y";
72 param_expr = None; param_readonly = None; param_callconv = None;
73 param_user_attributes = []; param_visibility = None }
75 f_ctxs = None; f_unsafe_ctxs = None;
76 f_body =
77 { fb_ast =
78 [([12:3-54],
79 (Expr
80 (([12:3-53], void),
81 (Call ((([12:3-18], (function<T as num>(num $x, num $y): void)), (Id ([12:3-18], "\\generic_bounded"))),
82 [((num), ([12:3-18], (Happly (([Pos.none], "_"), []))))],
83 [(([12:19-21], int), (Lvar ([12:19-21], $x))); (([12:23-52], float), (Hole ((([12:49-51], string), (Lvar ([12:49-51], $y))), (string), (float), UnsafeCast)))], None)))))
85 fb_annotation = () };
86 f_fun_kind = FSync; f_user_attributes = []; f_file_attributes = [];
87 f_external = false;
88 f_namespace =
89 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
90 ns_record_def_uses = <opaque>; ns_fun_uses = <opaque>; ns_const_uses = <opaque>;
91 ns_name = None; ns_auto_ns_map = []; ns_is_codegen = false;
92 ns_disable_xhp_element_mangling = false };
93 f_doc_comment = None })