aboutsummaryrefslogtreecommitdiff
path: root/pretyping
diff options
context:
space:
mode:
authormsozeau2010-03-07 22:51:23 +0000
committermsozeau2010-03-07 22:51:23 +0000
commit042a9e9156c183e705a5d5dddd4f2842fa57b943 (patch)
treef00519f096c28d37b65ef567e6fb56444b911db0 /pretyping
parenta7ff18e50ab655adcc4b7df0547a4dfddd2148a6 (diff)
Reorder resolution of type class and unification constraints.
Fix a bug in dependent elimination when treating defined variables in the context. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12851 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/pretyping.ml5
1 files changed, 2 insertions, 3 deletions
diff --git a/pretyping/pretyping.ml b/pretyping/pretyping.ml
index bed4d834d2..013270a6a7 100644
--- a/pretyping/pretyping.ml
+++ b/pretyping/pretyping.ml
@@ -677,7 +677,6 @@ module Pretyping_F (Coercion : Coercion.S) = struct
(pretype_type empty_valcon env evdref lvar c).utj_val
in
if resolve_classes then (
- evdref := consider_remaining_unif_problems env !evdref;
evdref :=
Typeclasses.resolve_typeclasses ~onlyargs:false
~split:true ~fail:fail_evar env !evdref);
@@ -694,10 +693,10 @@ module Pretyping_F (Coercion : Coercion.S) = struct
let understand_judgment sigma env c =
let evdref = ref (create_evar_defs sigma) in
let j = pretype empty_tycon env evdref ([],[]) c in
- let evd = consider_remaining_unif_problems env !evdref in
let evd = Typeclasses.resolve_typeclasses ~onlyargs:true ~split:false
- ~fail:true env evd
+ ~fail:true env !evdref
in
+ let evd = consider_remaining_unif_problems env evd in
let j = j_nf_evar evd j in
check_evars env sigma evd (mkCast(j.uj_val,DEFAULTcast, j.uj_type));
j