aboutsummaryrefslogtreecommitdiff
path: root/interp
diff options
context:
space:
mode:
authorherbelin2003-11-12 19:03:28 +0000
committerherbelin2003-11-12 19:03:28 +0000
commite233f936225c6fe40efbae854dda66afa74243ac (patch)
tree204dde1ddd1410902743394f9184f6ae52454876 /interp
parentdaf5bf99ebddd91c5042f1d1ec747339f1d62bcf (diff)
Test de la reference principale plutot que le module dans lequel se trouve la reference pour l'interpretation des numeraux
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4865 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
-rw-r--r--interp/symbols.ml7
-rw-r--r--interp/symbols.mli2
2 files changed, 5 insertions, 4 deletions
diff --git a/interp/symbols.ml b/interp/symbols.ml
index a79d98495b..427524c74d 100644
--- a/interp/symbols.ml
+++ b/interp/symbols.ml
@@ -193,7 +193,7 @@ type num_uninterpreter =
rawconstr list * (rawconstr -> bigint option)
* (cases_pattern -> bigint option) option
-type required_module = string list
+type required_module = global_reference * string list
let numeral_interpreter_tab =
(Hashtbl.create 7 : (scope_name,required_module*num_interpreter) Hashtbl.t)
@@ -206,10 +206,11 @@ let declare_numeral_interpreter sc dir interp (patl,uninterp,uninterpc) =
(sc,uninterp,uninterpc))
patl
-let check_required_module loc sc d =
+let check_required_module loc sc (ref,d) =
let d' = List.map id_of_string d in
let dir = make_dirpath (List.rev d') in
- if not (Library.library_is_loaded dir) then
+ try let _ = sp_of_global ref in ()
+ with Not_found ->
user_err_loc (loc,"numeral_interpreter",
str ("Cannot interpret numbers in "^sc^" without requiring first module "
^(list_last d)))
diff --git a/interp/symbols.mli b/interp/symbols.mli
index 483c0b792d..051b0aa3cb 100644
--- a/interp/symbols.mli
+++ b/interp/symbols.mli
@@ -65,7 +65,7 @@ type num_uninterpreter =
rawconstr list * (rawconstr -> bigint option)
* (cases_pattern -> bigint option) option
-type required_module = string list
+type required_module = global_reference * string list
val declare_numeral_interpreter : scope_name -> required_module ->
num_interpreter -> num_uninterpreter -> unit