aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authormsozeau2009-09-11 04:57:19 +0000
committermsozeau2009-09-11 04:57:19 +0000
commitb8cba846d5ad1c5e15b25fa824a77e81d6a7723c (patch)
tree26d6a594e5ab784c469a2d60f3ee2c4c2d239b3a /plugins
parent809c9dd5a2f0bedbbd3ef55809748dd1a56837f0 (diff)
- Resolve type class constraints before trying to find unresolved
obligations in [Program Fixpoint]. - Add maximal implicits for pairs in [Program.Syntax]. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12319 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'plugins')
-rw-r--r--plugins/subtac/subtac_command.ml6
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/subtac/subtac_command.ml b/plugins/subtac/subtac_command.ml
index eb135139c4..1095b143cc 100644
--- a/plugins/subtac/subtac_command.ml
+++ b/plugins/subtac/subtac_command.ml
@@ -383,7 +383,8 @@ let check_evars env initial_sigma evd c =
if not (Evd.mem initial_sigma evk) then
let (loc,k) = evar_source evk evd in
(match k with
- | QuestionMark _ -> ()
+ | QuestionMark _
+ | ImplicitArg (_, _, false) -> ()
| _ ->
let evi = nf_evar_info sigma (Evd.find sigma evk) in
Pretype_errors.error_unsolvable_implicit loc env sigma evi k None)
@@ -426,6 +427,9 @@ let interp_recursive fixkind l boxed =
(* Instantiate evars and check all are resolved *)
let evd,_ = Evarconv.consider_remaining_unif_problems env_rec !evdref in
+ let evd = Typeclasses.resolve_typeclasses
+ ~onlyargs:true ~split:true ~fail:false env_rec evd
+ in
let evd = Evarutil.nf_evar_defs evd in
let fixdefs = List.map (nf_evar evd) fixdefs in
let fixtypes = List.map (nf_evar evd) fixtypes in