diff options
| author | Thomas Refis <thomas.refis@gmail.com> | 2019-09-02 11:43:26 +0100 |
|---|---|---|
| committer | Thomas Refis <thomas.refis@gmail.com> | 2019-09-11 13:44:31 -0400 |
| commit | 6f492fdbd9c352c0502c118a80d451b8867b1dae (patch) | |
| tree | 7957c84f5a7425a87a8aaa99f261f18750daec3f /typing/typedtree.ml | |
| parent | f814450b605852429613e4ae7f68bac0382e3f1d (diff) | |
| download | ocaml-pr8908.tar.gz | |
PR#8908: used as a base for other PRs.pr8908
Diffstat (limited to 'typing/typedtree.ml')
| -rw-r--r-- | typing/typedtree.ml | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/typing/typedtree.ml b/typing/typedtree.ml index eb5e013a41..6edaff651b 100644 --- a/typing/typedtree.ml +++ b/typing/typedtree.ml @@ -106,7 +106,8 @@ and expression_desc = | Texp_setinstvar of Path.t * Path.t * string loc * expression | Texp_override of Path.t * (Path.t * string loc * expression) list | Texp_letmodule of - Ident.t * string loc * Types.module_presence * module_expr * expression + Ident.t option * string option loc * Types.module_presence * module_expr * + expression | Texp_letexception of extension_constructor * expression | Texp_assert of expression | Texp_lazy of expression @@ -217,10 +218,14 @@ and module_type_constraint = Tmodtype_implicit | Tmodtype_explicit of module_type +and functor_parameter = + | Unit + | Named of Ident.t option * string option loc * module_type + and module_expr_desc = Tmod_ident of Path.t * Longident.t loc | Tmod_structure of structure - | Tmod_functor of Ident.t * string loc * module_type option * module_expr + | Tmod_functor of functor_parameter * module_expr | Tmod_apply of module_expr * module_expr * module_coercion | Tmod_constraint of module_expr * Types.module_type * module_type_constraint * module_coercion @@ -256,8 +261,8 @@ and structure_item_desc = and module_binding = { - mb_id: Ident.t; - mb_name: string loc; + mb_id: Ident.t option; + mb_name: string option loc; mb_presence: module_presence; mb_expr: module_expr; mb_attributes: attribute list; @@ -291,7 +296,7 @@ and module_type = and module_type_desc = Tmty_ident of Path.t * Longident.t loc | Tmty_signature of signature - | Tmty_functor of Ident.t * string loc * module_type option * module_type + | Tmty_functor of functor_parameter * module_type | Tmty_with of module_type * (Path.t * Longident.t loc * with_constraint) list | Tmty_typeof of module_expr | Tmty_alias of Path.t * Longident.t loc @@ -334,8 +339,8 @@ and signature_item_desc = and module_declaration = { - md_id: Ident.t; - md_name: string loc; + md_id: Ident.t option; + md_name: string option loc; md_presence: module_presence; md_type: module_type; md_attributes: attribute list; |
