diff options
author | 2014-04-20 21:56:30 +0200 | |
---|---|---|
committer | 2014-04-20 21:56:30 +0200 | |
commit | ee13513b99cd80bc58a3469b881bd3ee62e3f4c6 (patch) | |
tree | 74c5c53d234715457eb1a95f27ec4072e2402d40 /tactics/tacinterp.ml | |
parent | 0f3f29792b8165b7eb89c049c76d065942739674 (diff) |
Fixing bug #3285.
Diffstat (limited to 'tactics/tacinterp.ml')
-rw-r--r-- | tactics/tacinterp.ml | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index 8c4cec0c2..cc02f6135 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -2165,7 +2165,14 @@ let _ = let tac = out_gen (glbwit wit_tactic) arg in let tac = interp_tactic ist tac in let prf = Proof.start sigma [env, ty] in - let (prf, _) = Proof.run_tactic env tac prf in + let (prf, _) = + try Proof.run_tactic env tac prf + with Proof_errors.TacticFailure e as src -> + (** Catch the inner error of the monad tactic *) + let src = Errors.push src in + let e = Backtrace.app_backtrace ~src ~dst:e in + raise e + in let sigma = Proof.in_proof prf (fun sigma -> sigma) in let ans = match Proof.initial_goals prf with | [c, _] -> c |