aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorsoubiran2008-04-21 07:40:43 +0000
committersoubiran2008-04-21 07:40:43 +0000
commit1c38e7101eb54594b06111271369cbffac50c3b6 (patch)
tree5ff88aa5ea73d48b9d6d65754212ee042b59b435 /kernel
parentc82f88f9dd833dc33dacfe03822bc5987041e6ac (diff)
Correction bug 1838 + doc modules.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10821 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r--kernel/modops.ml7
-rw-r--r--kernel/safe_typing.ml2
2 files changed, 6 insertions, 3 deletions
diff --git a/kernel/modops.ml b/kernel/modops.ml
index 8d74c4c300..4d0af4fee5 100644
--- a/kernel/modops.ml
+++ b/kernel/modops.ml
@@ -258,8 +258,11 @@ let rec eval_struct env = function
let mp = scrape_alias mp env in
let sub_alias = (lookup_modtype mp env).typ_alias in
let sub_alias = match eval_struct env (SEBident mp) with
- | SEBstruct (msid,sign) -> subst_key (map_msid msid mp) sub_alias
- | _ -> sub_alias in
+ | SEBstruct (msid,sign) ->
+ join_alias
+ (subst_key (map_msid msid mp) sub_alias)
+ (map_msid msid mp)
+ | _ -> sub_alias in
let sub_alias = update_subst_alias sub_alias
(map_mbid farg_id mp (None)) in
let resolve = resolver_of_environment farg_id farg_b mp sub_alias env in
diff --git a/kernel/safe_typing.ml b/kernel/safe_typing.ml
index a895e68ce7..2fffa09220 100644
--- a/kernel/safe_typing.ml
+++ b/kernel/safe_typing.ml
@@ -287,8 +287,8 @@ let add_module l me senv =
check_label l senv.labset;
let mb = translate_module senv.env me in
let mp = MPdot(senv.modinfo.modpath, l) in
- let is_functor,sub = Modops.update_subst senv.env mb mp in
let env' = full_add_module mp mb senv.env in
+ let is_functor,sub = Modops.update_subst senv.env mb mp in
mp, { old = senv.old;
env = env';
modinfo =