diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2001-11-19 08:40:40 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2001-11-19 08:40:40 +0000 |
commit | 7d8a167b36d1f27cc38f3b042eb6f2c01a8b6177 (patch) | |
tree | d3432765a2944e4f4ab6bfa50b653acebcd2beec /library | |
parent | 058e824e819b3610d0a4c0c53ded094b4b347b9f (diff) |
Re-installation de l'affichage des globaux par des noms courts
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2200 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library')
-rw-r--r-- | library/goptions.ml | 2 | ||||
-rwxr-xr-x | library/nametab.ml | 9 | ||||
-rwxr-xr-x | library/nametab.mli | 5 | ||||
-rw-r--r-- | library/opaque.ml | 7 |
4 files changed, 18 insertions, 5 deletions
diff --git a/library/goptions.ml b/library/goptions.ml index 0eae518b4..95336c35e 100644 --- a/library/goptions.ml +++ b/library/goptions.ml @@ -302,7 +302,7 @@ let msg_option_value (name,v) = | BoolValue false -> [< 'sTR "false" >] | IntValue n -> [< 'iNT n >] | StringValue s -> [< 'sTR s >] - | IdentValue id -> pr_sp(Nametab.sp_of_global (Global.env())id) + | IdentValue r -> pr_global_env (Global.env()) r let print_option_value key = let (name,(_,read,_)) = get_option key in diff --git a/library/nametab.ml b/library/nametab.ml index 9348ff30d..f70d672f8 100755 --- a/library/nametab.ml +++ b/library/nametab.ml @@ -280,7 +280,7 @@ let exists_section dir = (* For a sp Coq.A.B.x, try to find the shortest among x, B.x, A.B.x and Coq.A.B.x is a qualid that denotes the same object. *) -let qualid_of_global env ref = +let shortest_qualid_of_global env ref = let sp = sp_of_global env ref in let (pth,id) = repr_path sp in let rec find_visible dir qdir = @@ -292,6 +292,13 @@ let qualid_of_global env ref = in find_visible (repr_dirpath pth) (make_dirpath []) +let pr_global_env env ref = + (* Il est important de laisser le let-in, car les streams s'évaluent + paresseusement : il faut forcer l'évaluation pour capturer + l'éventuelle levée d'une exception (le cas échoit dans le debugger) *) + let s = string_of_qualid (shortest_qualid_of_global env ref) in + [< 'sTR s >] + (********************************************************************) (********************************************************************) diff --git a/library/nametab.mli b/library/nametab.mli index 6cf3f8673..adb764fcb 100755 --- a/library/nametab.mli +++ b/library/nametab.mli @@ -46,7 +46,10 @@ val pr_qualid : qualid -> std_ppcmds val qualid_of_sp : section_path -> qualid (* Turns an absolute name into a qualified name denoting the same name *) -val qualid_of_global : Environ.env -> global_reference -> qualid +val shortest_qualid_of_global : Environ.env -> global_reference -> qualid + +(* Printing of global references using names as short as possible *) +val pr_global_env : Environ.env -> global_reference -> std_ppcmds exception GlobalizationError of qualid exception GlobalizationConstantError of qualid diff --git a/library/opaque.ml b/library/opaque.ml index c672454a5..ff551ce55 100644 --- a/library/opaque.ml +++ b/library/opaque.ml @@ -10,6 +10,7 @@ (*i*) open Util +open Pp open Names open Closure open Summary @@ -49,8 +50,10 @@ let set_transparent_const sp = let (ids,sps) = !tr_state in let cb = Global.lookup_constant sp in if cb.const_body <> None & cb.const_opaque then - let s = string_of_path sp in - error ("Cannot make "^s^" transparent because it was declared opaque."); + errorlabstrm "set_transparent_const" + [< 'sTR "Cannot make"; 'sPC; + Nametab.pr_global_env (Global.env()) (Nametab.ConstRef sp); + 'sPC; 'sTR "transparent because it was declared opaque." >]; tr_state := (ids, Sppred.add sp sps) let set_opaque_var id = |