aboutsummaryrefslogtreecommitdiffhomepage
path: root/vernac/himsg.ml
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2018-03-24 13:19:13 +0100
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2018-03-24 13:31:36 +0100
commit7fd28dc95e3251a10617ddb6758cc00b8960f954 (patch)
tree020e1faa27fb091ed10c1576b1cb853b9d4cf3c9 /vernac/himsg.ml
parente128900aee63c972d7977fd47e3fd21649b63409 (diff)
Slightly refining some error messages about unresolvable evars.
For instance, error in "Goal forall a f, f a = 0" is now located.
Diffstat (limited to 'vernac/himsg.ml')
-rw-r--r--vernac/himsg.ml10
1 files changed, 8 insertions, 2 deletions
diff --git a/vernac/himsg.ml b/vernac/himsg.ml
index 249e7893c..698ee4703 100644
--- a/vernac/himsg.ml
+++ b/vernac/himsg.ml
@@ -559,15 +559,21 @@ let rec explain_evar_kind env sigma evk ty = function
| Evar_kinds.VarInstance id ->
strbrk "an instance of type " ++ ty ++
str " for the variable " ++ Id.print id
- | Evar_kinds.SubEvar evk' ->
+ | Evar_kinds.SubEvar (where,evk') ->
let evi = Evd.find sigma evk' in
let pc = match evi.evar_body with
| Evar_defined c -> pr_leconstr_env env sigma (EConstr.of_constr c)
| Evar_empty -> assert false in
let ty' = EConstr.of_constr evi.evar_concl in
+ (match where with
+ | Some Evar_kinds.Body -> str "the body of "
+ | Some Evar_kinds.Domain -> str "the domain of "
+ | Some Evar_kinds.Codomain -> str "the codomain of "
+ | None ->
pr_existential_key sigma evk ++ str " of type " ++ ty ++
str " in the partial instance " ++ pc ++
- str " found for " ++ explain_evar_kind env sigma evk'
+ str " found for ") ++
+ explain_evar_kind env sigma evk'
(pr_leconstr_env env sigma ty') (snd evi.evar_source)
let explain_typeclass_resolution env sigma evi k =