aboutsummaryrefslogtreecommitdiffhomepage
path: root/library/declaremods.ml
diff options
context:
space:
mode:
authorGravatar soubiran <soubiran@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-03-20 15:29:36 +0000
committerGravatar soubiran <soubiran@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-03-20 15:29:36 +0000
commit3085322c2ae00906b06837b0be10e036b3e0cd21 (patch)
treed9f589be17f504ac1e3f2f13c2c6d406d552b0ad /library/declaremods.ml
parent5444886bda4e4f37214427eec606444f273261fc (diff)
Correction d'un bug sur les modules de la forme:
Module F (X : S) : F_sig X. ... End F. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10702 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library/declaremods.ml')
-rw-r--r--library/declaremods.ml15
1 files changed, 8 insertions, 7 deletions
diff --git a/library/declaremods.ml b/library/declaremods.ml
index 6074bac9c..01450599a 100644
--- a/library/declaremods.ml
+++ b/library/declaremods.ml
@@ -644,13 +644,6 @@ let end_module id =
let oldoname,oldprefix,fs,lib_stack = Lib.end_module id in
let mbids, res_o, sub_o = !openmod_info in
- let mp = Global.end_module id res_o in
-
- begin match sub_o with
- None -> ()
- | Some sub_mtb -> check_subtypes mp sub_mtb
- end;
-
let substitute, keep, special = Lib.classify_segment lib_stack in
let dir = fst oldprefix in
@@ -674,6 +667,14 @@ let end_module id =
(* must be called after get_modtype_substobjs, because of possible
dependencies on functor arguments *)
+
+ let mp = Global.end_module id res_o in
+
+ begin match sub_o with
+ None -> ()
+ | Some sub_mtb -> check_subtypes mp sub_mtb
+ end;
+
Summary.module_unfreeze_summaries fs;
let substituted = subst_substobjs dir mp substobjs in