diff options
author | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 2004-12-11 06:58:14 +0000 |
---|---|---|
committer | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 2004-12-11 06:58:14 +0000 |
commit | 2f766eea9177a45ce3fe8dab3dbf23de253cbba8 (patch) | |
tree | 11ef6beef6a391147b73835cd00a705ee7f045c0 /typing/types.ml | |
parent | 385c6be7897735bc701a33b612df17d05ba9279d (diff) | |
download | ocaml-objvariants.tar.gz |
merge from 2004-12-10objvariants
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/objvariants@6735 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'typing/types.ml')
-rw-r--r-- | typing/types.ml | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/typing/types.ml b/typing/types.ml index 7cb8c89be7..908e7fd322 100644 --- a/typing/types.ml +++ b/typing/types.ml @@ -159,18 +159,21 @@ type class_type = and class_signature = { cty_self: type_expr; cty_vars: (Asttypes.mutable_flag * type_expr) Vars.t; - cty_concr: Concr.t } + cty_concr: Concr.t; + cty_inher: (Path.t * type_expr list) list } type class_declaration = { cty_params: type_expr list; mutable cty_type: class_type; cty_path: Path.t; - cty_new: type_expr option } + cty_new: type_expr option; + cty_variance: (bool * bool) list } type cltype_declaration = { clty_params: type_expr list; clty_type: class_type; - clty_path: Path.t } + clty_path: Path.t; + clty_variance: (bool * bool) list } (* Type expressions for the module language *) @@ -183,13 +186,18 @@ and signature = signature_item list and signature_item = Tsig_value of Ident.t * value_description - | Tsig_type of Ident.t * type_declaration + | Tsig_type of Ident.t * type_declaration * rec_status | Tsig_exception of Ident.t * exception_declaration - | Tsig_module of Ident.t * module_type + | Tsig_module of Ident.t * module_type * rec_status | Tsig_modtype of Ident.t * modtype_declaration - | Tsig_class of Ident.t * class_declaration - | Tsig_cltype of Ident.t * cltype_declaration + | Tsig_class of Ident.t * class_declaration * rec_status + | Tsig_cltype of Ident.t * cltype_declaration * rec_status and modtype_declaration = Tmodtype_abstract | Tmodtype_manifest of module_type + +and rec_status = + Trec_not + | Trec_first + | Trec_next |