From e233f936225c6fe40efbae854dda66afa74243ac Mon Sep 17 00:00:00 2001 From: herbelin Date: Wed, 12 Nov 2003 19:03:28 +0000 Subject: 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 --- interp/symbols.ml | 7 ++++--- interp/symbols.mli | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'interp') 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 -- cgit v1.2.3