aboutsummaryrefslogtreecommitdiffhomepage
path: root/library/declaremods.ml
diff options
context:
space:
mode:
authorGravatar soubiran <soubiran@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-04-03 16:44:48 +0000
committerGravatar soubiran <soubiran@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-04-03 16:44:48 +0000
commitec3f3aed78e6c31ce819723a35efd68474d8c006 (patch)
treed13ad8db358ebbea43e397791eb56d547cc3e07f /library/declaremods.ml
parentaaf57375ce16ecc78397dc1754de09db86e671a0 (diff)
Correction bug 1818, 3eme commentaire. mauvaise generation de substitution a l'application du foncteur.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10747 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/declaremods.ml')
-rw-r--r--library/declaremods.ml12
1 files changed, 8 insertions, 4 deletions
diff --git a/library/declaremods.ml b/library/declaremods.ml
index 7c228741b..bc1fa6f24 100644
--- a/library/declaremods.ml
+++ b/library/declaremods.ml
@@ -287,6 +287,8 @@ let subst_substobjs dir mp (subst,mbids,msid,objs) =
match mbids with
| [] ->
let prefix = dir,(mp,empty_dirpath) in
+ let subst' = join_alias (map_msid msid mp) subst in
+ let subst = join subst' subst in
Some (subst_objects prefix (join (map_msid msid mp) subst) objs)
| _ -> None
@@ -355,14 +357,16 @@ let subst_module_alias ((sp,kn),subst,(entry,substobjs,_)) =
begin
match me with
|{mod_entry_type = None;
- mod_entry_expr = Some (MSEident mp)} ->
- let mp = subst_mp subst' mp in
+ mod_entry_expr = Some (MSEident mp')} ->
+ let mp' = subst_mp subst' mp' in
(Some ({mod_entry_type = None;
mod_entry_expr =
- Some (MSEident mp)},sub),
+ Some (MSEident mp')},sub),
substobjs, match mbids with
| [] ->
- Some (subst_objects prefix (join (map_msid msid mp) subst) objs)
+ Some (subst_objects prefix
+ (join (map_mp mp mp')
+ (join (map_msid msid mp') subst)) objs)
| _ -> None)
| _ -> anomaly "Modops: Not an alias"