diff options
author | Matthieu Sozeau <mattam@mattam.org> | 2016-09-29 17:42:53 +0200 |
---|---|---|
committer | Matthieu Sozeau <mattam@mattam.org> | 2016-09-29 17:44:27 +0200 |
commit | c694b91bba898aad1e071d91fa70b7c5574cbf98 (patch) | |
tree | 554e1dd1c0982d42510213afbd8d29ed3712a85d /tactics/class_tactics.ml | |
parent | 5348a615a484e379896deac8a6944af1f92b2d4c (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.ml | 12 |
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 |