aboutsummaryrefslogtreecommitdiff
path: root/tactics/class_tactics.ml4
diff options
context:
space:
mode:
Diffstat (limited to 'tactics/class_tactics.ml4')
-rw-r--r--tactics/class_tactics.ml48
1 files changed, 6 insertions, 2 deletions
diff --git a/tactics/class_tactics.ml4 b/tactics/class_tactics.ml4
index 64c5c5a9e4..f754a926d1 100644
--- a/tactics/class_tactics.ml4
+++ b/tactics/class_tactics.ml4
@@ -320,7 +320,8 @@ let hints_tac hints =
match sgls with
| None -> gls', s'
| Some (evgls, s') ->
- (gls' @ List.map (fun (ev, x) -> (Some ev, x)) evgls, s')
+ (* Reorder with dependent subgoals. *)
+ (gls' @ List.map (fun (ev, x) -> Some ev, x) evgls, s')
in
let gls' = list_map_i
(fun j (evar, g) ->
@@ -601,7 +602,10 @@ let initial_select_evars onlyargs =
(fun evd ev evi -> Typeclasses.is_class_evar evd evi)
let resolve_typeclass_evars debug m env evd onlyargs split fail =
- resolve_all_evars debug m env (initial_select_evars onlyargs) evd split fail
+ let evd = Evarconv.consider_remaining_unif_problems
+ ~ts:(Typeclasses.classes_transparent_state ()) env evd
+ in
+ resolve_all_evars debug m env (initial_select_evars onlyargs) evd split fail
let solve_inst debug depth env evd onlyargs split fail =
resolve_typeclass_evars debug depth env evd onlyargs split fail