summaryrefslogtreecommitdiff
path: root/typing/typedtree.ml
diff options
context:
space:
mode:
Diffstat (limited to 'typing/typedtree.ml')
-rw-r--r--typing/typedtree.ml17
1 files changed, 12 insertions, 5 deletions
diff --git a/typing/typedtree.ml b/typing/typedtree.ml
index 35c5f5c5e6..166086ae86 100644
--- a/typing/typedtree.ml
+++ b/typing/typedtree.ml
@@ -93,7 +93,7 @@ and expression_desc =
| Texp_sequence of expression * expression
| Texp_while of expression * expression
| Texp_for of
- Ident.t * string loc * expression * expression * direction_flag *
+ Ident.t * Parsetree.pattern * expression * expression * direction_flag *
expression
| Texp_send of expression * meth * expression option
| Texp_new of Path.t * Longident.t loc * Types.class_declaration
@@ -187,7 +187,7 @@ and module_type_constraint =
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 * module_expr
+ | Tmod_functor of Ident.t * string loc * module_type option * module_expr
| Tmod_apply of module_expr * module_expr * module_coercion
| Tmod_constraint of
module_expr * Types.module_type * module_type_constraint * module_coercion
@@ -211,7 +211,8 @@ and structure_item_desc =
| Tstr_primitive of value_description
| Tstr_type of type_declaration list
| Tstr_exception of constructor_declaration
- | Tstr_exn_rebind of Ident.t * string loc * Path.t * Longident.t loc * attribute list
+ | Tstr_exn_rebind of
+ Ident.t * string loc * Path.t * Longident.t loc * attribute list
| Tstr_module of module_binding
| Tstr_recmodule of module_binding list
| Tstr_modtype of module_type_declaration
@@ -227,6 +228,7 @@ and module_binding =
mb_name: string loc;
mb_expr: module_expr;
mb_attributes: attribute list;
+ mb_loc: Location.t;
}
and value_binding =
@@ -238,9 +240,11 @@ and value_binding =
and module_coercion =
Tcoerce_none
- | Tcoerce_structure of (int * module_coercion) list
+ | Tcoerce_structure of (int * module_coercion) list *
+ (Ident.t * int * module_coercion) list
| Tcoerce_functor of module_coercion * module_coercion
| Tcoerce_primitive of Primitive.description
+ | Tcoerce_alias of Path.t * module_coercion
and module_type =
{ mty_desc: module_type_desc;
@@ -253,9 +257,10 @@ 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 * module_type
+ | Tmty_functor of Ident.t * string loc * module_type option * 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
and signature = {
sig_items : signature_item list;
@@ -287,6 +292,7 @@ and module_declaration =
md_name: string loc;
md_type: module_type;
md_attributes: attribute list;
+ md_loc: Location.t;
}
and module_type_declaration =
@@ -295,6 +301,7 @@ and module_type_declaration =
mtd_name: string loc;
mtd_type: module_type option;
mtd_attributes: attribute list;
+ mtd_loc: Location.t;
}
and with_constraint =