diff options
| author | herbelin | 2011-06-10 22:06:35 +0000 |
|---|---|---|
| committer | herbelin | 2011-06-10 22:06:35 +0000 |
| commit | c40f59114f3eb11708af6e45ec8cfe81ec2fa3a2 (patch) | |
| tree | 4358994912b33587d573f5db05056cf543feccc0 /plugins/funind | |
| 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
Diffstat (limited to 'plugins/funind')
| -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 |
4 files changed, 9 insertions, 3 deletions
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;; |
