From c40f59114f3eb11708af6e45ec8cfe81ec2fa3a2 Mon Sep 17 00:00:00 2001 From: herbelin Date: Fri, 10 Jun 2011 22:06:35 +0000 Subject: 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 --- plugins/funind/functional_principles_proofs.ml | 1 + plugins/funind/g_indfun.ml4 | 1 + plugins/funind/indfun.ml | 7 +++++-- plugins/funind/invfun.ml | 3 ++- plugins/subtac/subtac_obligations.ml | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/funind/functional_principles_proofs.ml b/plugins/funind/functional_principles_proofs.ml index 21ee325398..bba3f95fd5 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 53ddfb9670..123399d56f 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 d98960a489..85c362b769 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 1b7a190298..359738fd58 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 01bd3d998a..18752c9f9a 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 -> -- cgit v1.2.3