aboutsummaryrefslogtreecommitdiff
path: root/toplevel
diff options
context:
space:
mode:
authormsozeau2011-03-11 17:00:35 +0000
committermsozeau2011-03-11 17:00:35 +0000
commit7a97fcc78a73ab36d0cb1526397b4d2d7299ed34 (patch)
treeeadfc5720feb5b443e771b81adbfc2645d411ac4 /toplevel
parent36b8aa6b0a6302e1675df623bf28e86029bb40f5 (diff)
- Better error messages taking unif. constraints into account.
- Normalize evars in typeclasses eauto also before [intro]. - Disallow use of nf_evars variants that drop unif. constraints. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13904 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'toplevel')
-rw-r--r--toplevel/autoinstance.ml2
-rw-r--r--toplevel/himsg.ml8
2 files changed, 6 insertions, 4 deletions
diff --git a/toplevel/autoinstance.ml b/toplevel/autoinstance.ml
index 242a8e52b4..af1330a42b 100644
--- a/toplevel/autoinstance.ml
+++ b/toplevel/autoinstance.ml
@@ -255,7 +255,7 @@ let gen_sort_topo l evm =
(* register real typeclass instance given a totally defined evd *)
let declare_instance (k:global_reference -> rel_context -> constr list -> unit)
(cl,gen,evm:signature) =
- let evm = Evarutil.nf_evars evm in
+ let evm = Evarutil.nf_evar_map evm in
let gen = gen_sort_topo gen evm in
let (evm,gen) = List.fold_right
(fun ev (evm,gen) ->
diff --git a/toplevel/himsg.ml b/toplevel/himsg.ml
index 6af1f9d56c..60a3b89bb0 100644
--- a/toplevel/himsg.ml
+++ b/toplevel/himsg.ml
@@ -696,7 +696,7 @@ let explain_no_instance env (_,id) l =
prlist_with_sep pr_spc (pr_lconstr_env env) l
let pr_constraints printenv env evm =
- let evm = Evarutil.nf_evars_undefined evm in
+ let evm = Evarutil.nf_evar_map_undefined evm in
let l = Evd.to_list evm in
let (ev, evi) = List.hd l in
if List.for_all (fun (ev', evi') ->
@@ -706,12 +706,14 @@ let pr_constraints printenv env evm =
(reset_with_named_context evi.evar_hyps env) in
(if printenv then pe ++ fnl () else mt ()) ++
prlist_with_sep (fun () -> fnl ())
- (fun (ev, evi) -> str(string_of_existential ev)++ str " == " ++ pr_constr evi.evar_concl) l
+ (fun (ev, evi) -> str(string_of_existential ev) ++
+ str " : " ++ pr_lconstr evi.evar_concl) l ++ fnl() ++
+ pr_evar_map_constraints evm
else
pr_evar_map evm
let explain_unsatisfiable_constraints env evd constr =
- let evm = Evarutil.nf_evars evd in
+ let evm = Evarutil.nf_evar_map evd in
let undef = Evd.undefined_evars evm in
match constr with
| None ->