aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2016-06-11 07:36:46 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2016-06-11 08:32:48 +0200
commitf9695eb4bc5b377a02f49ee485d7fe9be122c183 (patch)
treebd0da1b509c93913a7c3ca6e8e3ef1857468d846
parentd095d43f09162f3365392f91ebdd48fcf83d9147 (diff)
Fixing #4782 (a typing error not captured when dealing with bindings).
Trying to now catch all unification errors, but without a clear view at whether some errors could be tolerated at the point of checking the type of the binding.
-rw-r--r--proofs/clenv.ml2
-rw-r--r--test-suite/bugs/closed/4782.v8
2 files changed, 9 insertions, 1 deletions
diff --git a/proofs/clenv.ml b/proofs/clenv.ml
index 88e1bce95..09e77602d 100644
--- a/proofs/clenv.ml
+++ b/proofs/clenv.ml
@@ -459,7 +459,7 @@ let clenv_unify_binding_type clenv c t u =
let evd,c = w_coerce_to_type (cl_env clenv) clenv.evd c t u in
TypeProcessed, { clenv with evd = evd }, c
with
- | PretypeError (_,_,ActualTypeNotCoercible (_,_,NotClean _)) as e ->
+ | PretypeError (_,_,ActualTypeNotCoercible _) as e ->
raise e
| e when precatchable_exception e ->
TypeNotProcessed, clenv, c
diff --git a/test-suite/bugs/closed/4782.v b/test-suite/bugs/closed/4782.v
new file mode 100644
index 000000000..4622b18d2
--- /dev/null
+++ b/test-suite/bugs/closed/4782.v
@@ -0,0 +1,8 @@
+(* About typing of with bindings *)
+
+Record r : Type := mk_r { type : Type; cond : type -> Prop }.
+
+Inductive p : Prop := consp : forall (e : r) (x : type e), cond e x -> p.
+
+Goal p.
+Fail apply consp with (fun _ : bool => mk_r unit (fun x => True)) nil.