Add tests for invalid uses of `this` type hint
[hiphop-php.git] / hphp / hack / test / nast / this_class_tparam_bound.php.exp
blob7c215098992a1d462d20fda3cf51fa71953c04d2
1 Errors:
2 [3:14-18] The type `this` cannot be used as a constraint on a class generic, or as the type of a static member variable
3 [7:23-27] The type `this` cannot be used as a constraint on a class generic, or as the type of a static member variable
4 [7:23-27] `this` must be an identifier for a class, `self`, or `this`
5 [(Class
6 { c_span = [3:1-5:2]; c_annotation = (); c_mode = Mstrict; c_final = false;
7 c_is_xhp = false; c_has_xhp_keyword = false; c_kind = (Cclass Concrete);
8 c_name = ([3:7-8], "\\C");
9 c_tparams = [{ tp_variance = Invariant; tp_name = ([3:9-10], "T"); tp_parameters = []; tp_constraints = [(Constraint_as, ([3:14-18], Herr))]; tp_reified = Erased; tp_user_attributes = [] }];
10 c_extends = []; c_uses = []; c_xhp_attr_uses = []; c_xhp_category = None;
11 c_reqs = []; c_implements = []; c_where_constraints = []; c_consts = [];
12 c_typeconsts = [];
13 c_vars =
14 [{ cv_final = false; cv_xhp_attr = None; cv_abstract = false; cv_readonly = false;
15 cv_visibility = Private; cv_type = ((), (Some ([4:11-13], (Hoption ([4:12-13], (Habstr ("T", [])))))));
16 cv_id = ([4:14-16], "x"); cv_expr = None; cv_user_attributes = [];
17 cv_doc_comment = None; cv_is_promoted_variadic = false; cv_is_static = false;
18 cv_span = [4:14-16] }
20 c_methods = []; c_xhp_children = []; c_xhp_attrs = [];
21 c_namespace =
22 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
23 ns_fun_uses = <opaque>; ns_const_uses = <opaque>; ns_name = None;
24 ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
25 c_user_attributes = []; c_file_attributes = []; c_docs_url = None;
26 c_enum = None; c_doc_comment = None; c_emit_id = None; c_internal = false;
27 c_module = None });
28 (Class
29 { c_span = [7:1-9:2]; c_annotation = (); c_mode = Mstrict; c_final = false;
30 c_is_xhp = false; c_has_xhp_keyword = false; c_kind = (Cclass Abstract);
31 c_name = ([7:16-17], "\\C");
32 c_tparams =
33 [{ tp_variance = Invariant; tp_name = ([7:18-19], "T"); tp_parameters = [];
34 tp_constraints = [(Constraint_as, ([7:23-30], (Haccess (([7:23-27], Herr), [([7:29-30], "X")]))))];
35 tp_reified = Erased; tp_user_attributes = [] }
37 c_extends = []; c_uses = []; c_xhp_attr_uses = []; c_xhp_category = None;
38 c_reqs = []; c_implements = []; c_where_constraints = []; c_consts = [];
39 c_typeconsts =
40 [{ c_tconst_user_attributes = []; c_tconst_name = ([8:23-24], "X");
41 c_tconst_kind = (TCAbstract { c_atc_as_constraint = None; c_atc_super_constraint = None; c_atc_default = None });
42 c_tconst_span = [8:3-25]; c_tconst_doc_comment = None; c_tconst_is_ctx = false }
44 c_vars = []; c_methods = []; c_xhp_children = []; c_xhp_attrs = [];
45 c_namespace =
46 { Namespace_env.ns_ns_uses = <opaque>; ns_class_uses = <opaque>;
47 ns_fun_uses = <opaque>; ns_const_uses = <opaque>; ns_name = None;
48 ns_auto_ns_map = []; ns_is_codegen = false; ns_disable_xhp_element_mangling = false };
49 c_user_attributes = []; c_file_attributes = []; c_docs_url = None;
50 c_enum = None; c_doc_comment = None; c_emit_id = None; c_internal = false;
51 c_module = None })