diff options
| author | Arnaud Spiwack | 2014-10-16 14:42:20 +0200 |
|---|---|---|
| committer | Arnaud Spiwack | 2014-10-16 15:14:20 +0200 |
| commit | 2d65dac1b0c63039f802d5e92afd389d5e7cc846 (patch) | |
| tree | f1824671df6fda9a2d49bea99b64b6700762ed0a /proofs/proofview.ml | |
| parent | ce260a0db279ce09dda70e079ae3c35b49f05ec4 (diff) | |
Put evars remaining after a tactic on the shelf.
Uses the new architecture which allows to keep track of all new evars. The [future_goals] are flushed at the end of the tactics, the [principal_future_goal] is ignored.
Diffstat (limited to 'proofs/proofview.ml')
| -rw-r--r-- | proofs/proofview.ml | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/proofs/proofview.ml b/proofs/proofview.ml index 50076ed9f3..ea588d8e86 100644 --- a/proofs/proofview.ml +++ b/proofs/proofview.ml @@ -49,7 +49,10 @@ let init sigma = fun l -> let entry, v = aux l in (* Marks all the goal unresolvable for typeclasses. *) - entry, { v with solution = Typeclasses.mark_unresolvables v.solution } + let solution = Typeclasses.mark_unresolvables v.solution in + (* The created goal are not to be shelved. *) + let solution = Evd.reset_future_goals solution in + entry, { v with solution } type telescope = | TNil of Evd.evar_map @@ -68,7 +71,10 @@ let dependent_init = fun t -> let entry, v = aux t in (* Marks all the goal unresolvable for typeclasses. *) - entry, { v with solution = Typeclasses.mark_unresolvables v.solution } + let solution = Typeclasses.mark_unresolvables v.solution in + (* The created goal are not to be shelved. *) + let solution = Evd.reset_future_goals solution in + entry, { v with solution } let initial_goals initial = initial @@ -795,6 +801,8 @@ let numgoals = let in_proofview p k = k p.solution +let reset_future_goals p = + { p with solution = Evd.reset_future_goals p.solution } module Notations = struct |
