aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/class_tactics.ml
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <mattam@mattam.org>2016-09-29 17:42:53 +0200
committerGravatar Matthieu Sozeau <mattam@mattam.org>2016-09-29 17:44:27 +0200
commitc694b91bba898aad1e071d91fa70b7c5574cbf98 (patch)
tree554e1dd1c0982d42510213afbd8d29ed3712a85d /tactics/class_tactics.ml
parent5348a615a484e379896deac8a6944af1f92b2d4c (diff)
Fix bug 4969, autoapply was not tagging shelved subgoals correctly as unresolvable
Diffstat (limited to 'tactics/class_tactics.ml')
-rw-r--r--tactics/class_tactics.ml12
1 files changed, 9 insertions, 3 deletions
diff --git a/tactics/class_tactics.ml b/tactics/class_tactics.ml
index 8d6c085e6..c5b0e149a 100644
--- a/tactics/class_tactics.ml
+++ b/tactics/class_tactics.ml
@@ -1511,10 +1511,16 @@ let is_ground c gl =
else tclFAIL 0 (str"Not ground") gl
let autoapply c i gl =
+ let open Proofview.Notations in
let flags = auto_unif_flags Evar.Set.empty
(Hints.Hint_db.transparent_state (Hints.searchtable_map i)) in
let cty = pf_unsafe_type_of gl c in
let ce = mk_clenv_from gl (c,cty) in
- let tac = { enter = fun gl -> (unify_e_resolve false flags).enter gl
- ((c,cty,Univ.ContextSet.empty),0,ce) } in
- Proofview.V82.of_tactic (Proofview.Goal.nf_enter tac) gl
+ let enter gl =
+ (unify_e_resolve false flags).enter gl
+ ((c,cty,Univ.ContextSet.empty),0,ce) <*>
+ Proofview.tclEVARMAP >>= (fun sigma ->
+ let sigma = Typeclasses.mark_unresolvables ~filter:Typeclasses.all_goals sigma in
+ Proofview.Unsafe.tclEVARS sigma)
+ in
+ Proofview.V82.of_tactic (Proofview.Goal.nf_enter { enter }) gl