summaryrefslogtreecommitdiff
path: root/test-suite/bugs/opened/3459.v
blob: 9e6107b30a407fff4d2d65aaff9cce8e1f1508f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(* Bad interaction between clear and the typability of ltac constr bindings *)

(* Original report *)

Goal 1 = 2.
Proof.
(* This line used to fail with a Not_found up to some point, and then
   to produce an ill-typed term *)
match goal with
  | [ |- context G[2] ] => let y := constr:(fun x => $(let r := constr:(@eq Set x x) in
                                                       clear x;
                                                       exact r)$) in
                           pose y
end.
(* Add extra test for typability (should not fail when bug closed) *)
Fail match goal with P:?c |- _ => try (let x := type of c in idtac) || fail 2 end.
Abort.

(* Second report raising a Not_found at the time of 21 Oct 2014 *)

Section F.

Variable x : nat.

Goal True.
evar (e : Prop).
assert e.
Fail let r := constr:(eq_refl x) in clear x; exact r.
Abort.

End F.