diff options
| author | Pierre-Marie Pédrot | 2014-11-30 02:23:57 +0100 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2014-11-30 02:23:57 +0100 |
| commit | 4a858a51322f2dd488b02130ca82ebcc4dc9ca35 (patch) | |
| tree | 09118e3c5a42eaabaa2ccae1f8aa365eb963b47d | |
| parent | 2ee213b824dda48c3fe60e95316daf09f07e8075 (diff) | |
Fixing bug #3682.
The function initializing proofviews were marking all evars as non-resolvables
for the proofview, while only goal evars ought to be.
| -rw-r--r-- | proofs/proofview.ml | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/proofs/proofview.ml b/proofs/proofview.ml index a8b77e225f..1813c716eb 100644 --- a/proofs/proofview.ml +++ b/proofs/proofview.ml @@ -68,7 +68,10 @@ let dependent_init = fun t -> let entry, v = aux t in (* Marks all the goal unresolvable for typeclasses. *) - let solution = Typeclasses.mark_unresolvables v.solution in + let fold accu ev = Evar.Set.add ev accu in + let gls = List.fold_left fold Evar.Set.empty v.comb in + let filter evk _ = Evar.Set.mem evk gls in + let solution = Typeclasses.mark_unresolvables ~filter v.solution in (* The created goal are not to be shelved. *) let solution = Evd.reset_future_goals solution in entry, { v with solution } |
