aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsozeau2009-06-01 21:19:20 +0000
committermsozeau2009-06-01 21:19:20 +0000
commitce19a21686b6a75f4fea6f49468812679f241d64 (patch)
treeab9b7a74226c084ce2d75d7af4405c34b494e26f
parent15d3e64ff69e39b41413831e20b9fe408d3263d5 (diff)
## Lines starting with '## ' will be removed from the log message.
## File(s) to commit: ## tactics/refine.ml Try solving typeclasses before refining in Refine.refine (suggested by S. Lescuyer). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12157 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/refine.ml10
1 files changed, 6 insertions, 4 deletions
diff --git a/tactics/refine.ml b/tactics/refine.ml
index 1a61c982b5..46c8d3aa2e 100644
--- a/tactics/refine.ml
+++ b/tactics/refine.ml
@@ -369,10 +369,12 @@ let rec tcc_aux subst (TH (c,mm,sgp) as _th) gl =
(* Et finalement la tactique refine elle-même : *)
-let refine oc gl =
+let refine (evd,c) gl =
let sigma = project gl in
- let (sigma,c) = Evarutil.evars_to_metas sigma oc in
+ let evd = Typeclasses.resolve_typeclasses (pf_env gl) evd in
+ let c = Evarutil.nf_evar evd c in
+ let (evd,c) = Evarutil.evars_to_metas sigma (evd,c) in
(* Relies on Cast's put on Meta's by evars_to_metas, because it is otherwise
complicated to update meta types when passing through a binder *)
- let th = compute_metamap (pf_env gl) sigma c in
- tclTHEN (Refiner.tclEVARS sigma) (tcc_aux [] th) gl
+ let th = compute_metamap (pf_env gl) evd c in
+ tclTHEN (Refiner.tclEVARS evd) (tcc_aux [] th) gl