diff options
author | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2016-06-11 07:36:46 +0200 |
---|---|---|
committer | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2016-06-11 08:32:48 +0200 |
commit | f9695eb4bc5b377a02f49ee485d7fe9be122c183 (patch) | |
tree | bd0da1b509c93913a7c3ca6e8e3ef1857468d846 | |
parent | d095d43f09162f3365392f91ebdd48fcf83d9147 (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.ml | 2 | ||||
-rw-r--r-- | test-suite/bugs/closed/4782.v | 8 |
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. |