diff options
Diffstat (limited to 'tactics/tactics.ml')
-rw-r--r-- | tactics/tactics.ml | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml index 9c2a1f6e3..3dd208acb 100644 --- a/tactics/tactics.ml +++ b/tactics/tactics.ml @@ -3657,11 +3657,13 @@ let abstract_subproof id tac = let solve_tac = tclCOMPLETE (tclTHEN (tclDO (List.length sign) intro) tac) in let (const, safe) = try Pfedit.build_constant_by_tactic id secsign concl solve_tac - with Proof_errors.TacticFailure e -> + with Proof_errors.TacticFailure e as src -> (* if the tactic [tac] fails, it reports a [TacticFailure e], which is an error irrelevant to the proof system (in fact it means that [e] comes from [tac] failing to yield enough success). Hence it reraises [e]. *) + let src = Errors.push src in + let e = Backtrace.app_backtrace ~src ~dst:e in raise e in let cd = Entries.DefinitionEntry const in |