diff options
| author | msozeau | 2009-09-11 04:57:19 +0000 |
|---|---|---|
| committer | msozeau | 2009-09-11 04:57:19 +0000 |
| commit | b8cba846d5ad1c5e15b25fa824a77e81d6a7723c (patch) | |
| tree | 26d6a594e5ab784c469a2d60f3ee2c4c2d239b3a /plugins | |
| parent | 809c9dd5a2f0bedbbd3ef55809748dd1a56837f0 (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.ml | 6 |
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 |
