diff options
author | 2011-06-10 22:06:35 +0000 | |
---|---|---|
committer | 2011-06-10 22:06:35 +0000 | |
commit | c40f59114f3eb11708af6e45ec8cfe81ec2fa3a2 (patch) | |
tree | 4358994912b33587d573f5db05056cf543feccc0 | |
parent | 6858036c6d12d77df2da9643b04f56733428be13 (diff) |
Call process_vernac_interp_error before calling Errors.print in
plugins so that errors are indeed processed. Not sure this is the best
way to do it. Maybe funind should use with_heavy_rollback for
delimitating its use of vernac commands.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14181 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r-- | plugins/funind/functional_principles_proofs.ml | 1 | ||||
-rw-r--r-- | plugins/funind/g_indfun.ml4 | 1 | ||||
-rw-r--r-- | plugins/funind/indfun.ml | 7 | ||||
-rw-r--r-- | plugins/funind/invfun.ml | 3 | ||||
-rw-r--r-- | plugins/subtac/subtac_obligations.ml | 2 |
5 files changed, 10 insertions, 4 deletions
diff --git a/plugins/funind/functional_principles_proofs.ml b/plugins/funind/functional_principles_proofs.ml index 21ee32539..bba3f95fd 100644 --- a/plugins/funind/functional_principles_proofs.ml +++ b/plugins/funind/functional_principles_proofs.ml @@ -34,6 +34,7 @@ let observennl strm = let do_observe_tac s tac g = try let v = tac g in (* msgnl (goal ++ fnl () ++ (str s)++(str " ")++(str "finished")); *) v with e -> + let e = Cerrors.process_vernac_interp_error e in let goal = begin try (Printer.pr_goal g) with _ -> assert false end in msgnl (str "observation "++ s++str " raised exception " ++ Errors.print e ++ str " on goal " ++ goal ); diff --git a/plugins/funind/g_indfun.ml4 b/plugins/funind/g_indfun.ml4 index 53ddfb967..123399d56 100644 --- a/plugins/funind/g_indfun.ml4 +++ b/plugins/funind/g_indfun.ml4 @@ -175,6 +175,7 @@ END let warning_error names e = + let e = Cerrors.process_vernac_interp_error e in match e with | Building_graph e -> Pp.msg_warning diff --git a/plugins/funind/indfun.ml b/plugins/funind/indfun.ml index d98960a48..85c362b76 100644 --- a/plugins/funind/indfun.ml +++ b/plugins/funind/indfun.ml @@ -252,12 +252,14 @@ let derive_inversion fix_names = fix_names ) with e -> + let e' = Cerrors.process_vernac_interp_error e in msg_warning - (str "Cannot built inversion information" ++ - if do_observe () then Errors.print e else mt ()) + (str "Cannot build inversion information" ++ + if do_observe () then (fnl() ++ Errors.print e') else mt ()) with _ -> () let warning_error names e = + let e = Cerrors.process_vernac_interp_error e in let e_explain e = match e with | ToShow e -> spc () ++ Errors.print e @@ -277,6 +279,7 @@ let warning_error names e = | _ -> raise e let error_error names e = + let e = Cerrors.process_vernac_interp_error e in let e_explain e = match e with | ToShow e -> spc () ++ Errors.print e diff --git a/plugins/funind/invfun.ml b/plugins/funind/invfun.ml index 1b7a19029..359738fd5 100644 --- a/plugins/funind/invfun.ml +++ b/plugins/funind/invfun.ml @@ -63,8 +63,9 @@ let do_observe_tac s tac g = try let v = tac g in msgnl (goal ++ fnl () ++ s ++(str " ")++(str "finished")); v with e -> + let e' = Cerrors.process_vernac_interp_error e in msgnl (str "observation "++ s++str " raised exception " ++ - Errors.print e ++ str " on goal " ++ goal ); + Errors.print e' ++ str " on goal " ++ goal ); raise e;; diff --git a/plugins/subtac/subtac_obligations.ml b/plugins/subtac/subtac_obligations.ml index 01bd3d998..18752c9f9 100644 --- a/plugins/subtac/subtac_obligations.ml +++ b/plugins/subtac/subtac_obligations.ml @@ -494,7 +494,7 @@ let rec solve_obligation prg num tac = let obls = Array.copy obls in let _ = obls.(num) <- obl in let res = try update_obls prg obls (pred rem) - with e -> pperror (Errors.print e) + with e -> pperror (Errors.print (Cerrors.process_vernac_interp_error e)) in match res with | Remain n when n > 0 -> |