aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/class_tactics.ml
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <mattam@mattam.org>2017-06-14 15:37:14 +0200
committerGravatar Matthieu Sozeau <mattam@mattam.org>2017-06-14 15:37:14 +0200
commit6c6c045a42dc591a0c35730e0abff80be0c8b9bb (patch)
treec92af37b53de9f771ab62ce44e2d5444c604fa19 /tactics/class_tactics.ml
parent5bf9c993d3ef15ecf4c6d5c12f23f9c2fe67dfa7 (diff)
[typeclasses eauto] Fix bug #3943: non-termination in topological
sorting for the dependency order option.
Diffstat (limited to 'tactics/class_tactics.ml')
-rw-r--r--tactics/class_tactics.ml2
1 files changed, 1 insertions, 1 deletions
diff --git a/tactics/class_tactics.ml b/tactics/class_tactics.ml
index 4bde427b1..cb0f66730 100644
--- a/tactics/class_tactics.ml
+++ b/tactics/class_tactics.ml
@@ -527,10 +527,10 @@ let top_sort evm undefs =
let tosee = ref undefs in
let rec visit ev evi =
let evs = Evarutil.undefined_evars_of_evar_info evm evi in
+ tosee := Evar.Map.remove ev !tosee;
Evar.Set.iter (fun ev ->
if Evar.Map.mem ev !tosee then
visit ev (Evar.Map.find ev !tosee)) evs;
- tosee := Evar.Map.remove ev !tosee;
l' := ev :: !l';
in
while not (Evar.Map.is_empty !tosee) do