aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/mod_typing.ml
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/mod_typing.ml')
-rw-r--r--kernel/mod_typing.ml27
1 files changed, 14 insertions, 13 deletions
diff --git a/kernel/mod_typing.ml b/kernel/mod_typing.ml
index 407ae73ca..13ac21437 100644
--- a/kernel/mod_typing.ml
+++ b/kernel/mod_typing.ml
@@ -294,11 +294,11 @@ and translate_struct_module_entry env mp inl mse = match mse with
(* place for nondep_supertype *) in
let cst = check_subtypes env mtb farg_b in
let mp_delta = discr_resolver env mtb in
- let mp_delta = if not inl then mp_delta else
- complete_inline_delta_resolver env mp1 farg_id farg_b mp_delta
+ let mp_delta = inline_delta_resolver env inl mp1 farg_id farg_b mp_delta
in
- let subst = map_mbid farg_id mp1 mp_delta in
- (subst_struct_expr subst fbody_b),SEBapply(alg,SEBident mp1,cst),
+ let subst = map_mbid farg_id mp1 mp_delta
+ in
+ (subst_struct_expr subst fbody_b),SEBapply(alg,SEBident mp1,cst),
(subst_codom_delta_resolver subst resolver),
Univ.union_constraints cst1 cst
| MSEwith(mte, with_decl) ->
@@ -333,12 +333,13 @@ and translate_struct_type_entry env inl mse = match mse with
(* place for nondep_supertype *) in
let cst2 = check_subtypes env mtb farg_b in
let mp_delta = discr_resolver env mtb in
- let mp_delta = if not inl then mp_delta else
- complete_inline_delta_resolver env mp1 farg_id farg_b mp_delta
+ let mp_delta = inline_delta_resolver env inl mp1 farg_id farg_b mp_delta
+ in
+ let subst = map_mbid farg_id mp1 mp_delta
in
- let subst = map_mbid farg_id mp1 mp_delta in
- (subst_struct_expr subst fbody_b),None,
- (subst_codom_delta_resolver subst resolve),mp_from,Univ.union_constraints cst1 cst2
+ (subst_struct_expr subst fbody_b),None,
+ (subst_codom_delta_resolver subst resolve),mp_from,
+ Univ.union_constraints cst1 cst2
| MSEwith(mte, with_decl) ->
let sign,alg,resolve,mp_from,cst = translate_struct_type_entry env inl mte in
let sign,alg,resolve,cst1 =
@@ -375,11 +376,11 @@ let rec translate_struct_include_module_entry env mp inl mse = match mse with
(* place for nondep_supertype *) in
let cst = check_subtypes env mtb farg_b in
let mp_delta = discr_resolver env mtb in
- let mp_delta = if not inl then mp_delta else
- complete_inline_delta_resolver env mp1 farg_id farg_b mp_delta
+ let mp_delta = inline_delta_resolver env inl mp1 farg_id farg_b mp_delta
+ in
+ let subst = map_mbid farg_id mp1 mp_delta
in
- let subst = map_mbid farg_id mp1 mp_delta in
- (subst_struct_expr subst fbody_b),
+ (subst_struct_expr subst fbody_b),
(subst_codom_delta_resolver subst resolver),
Univ.union_constraints cst1 cst
| _ -> error ("You cannot Include a high-order structure.")