aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/extraction/extract_env.ml12
1 files changed, 10 insertions, 2 deletions
diff --git a/contrib/extraction/extract_env.ml b/contrib/extraction/extract_env.ml
index 87e390116c..2fd9979868 100644
--- a/contrib/extraction/extract_env.ml
+++ b/contrib/extraction/extract_env.ml
@@ -26,7 +26,13 @@ open Common
We just keep constants and inductives. *)
let extract_module m =
- let m = Nametab.locate_loaded_library (Nametab.make_short_qualid m) in
+ let m =
+ try
+ Nametab.locate_loaded_library (Nametab.make_short_qualid m)
+ with Not_found ->
+ errorlabstrm "module_message"
+ [< 'sTR "Module"; 'sPC;pr_id m; 'sPC; 'sTR "not found." >]
+ in
let seg = Library.module_segment (Some m) in
let get_reference = function
| sp, Leaf o ->
@@ -72,7 +78,9 @@ let rec visit_reference m eenv r =
let m_name = module_of_r r' in
if not (Idset.mem m_name eenv.modules) then begin
eenv.modules <- Idset.add m_name eenv.modules;
- List.iter (visit_reference m eenv) (extract_module m_name)
+ try (* HACK temporaire pour eviter les m_name qui sont des sections *)
+ List.iter (visit_reference m eenv) (extract_module m_name)
+ with _ -> ()
end
end;
visit_decl m eenv (extract_declaration r);