aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite/success/Record.v
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-05-21 22:23:24 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-05-31 00:44:26 +0200
commitca630605330828b9b6456477b0fd4f8a0c3f1831 (patch)
treee04712936c193bbe5daade5843f9f8eb5a8c38fc /test-suite/success/Record.v
parent09e15424aab082fd4b18a06e8894227beddeb487 (diff)
More precise on preventing clash between bound vars name and hidden impargs.
We want to avoid capture in "Inductive I {A} := C : forall A, I". But in "Record I {A} := { C : forall A, A }.", non recursivity ensures that no clash will occur. This fixes previous commit, with which it could possibly be merged.
Diffstat (limited to 'test-suite/success/Record.v')
-rw-r--r--test-suite/success/Record.v5
1 files changed, 5 insertions, 0 deletions
diff --git a/test-suite/success/Record.v b/test-suite/success/Record.v
index 8334322c9..6f27c1d36 100644
--- a/test-suite/success/Record.v
+++ b/test-suite/success/Record.v
@@ -87,3 +87,8 @@ Record R : Type := {
P (A : Type) : Prop := exists x : A -> A, x = x;
Q A : P A -> P A
}.
+
+(* We allow reusing an implicit parameter named in non-recursive types *)
+(* This is used in a couple of development such as UniMatch *)
+
+Record S {A:Type} := { a : A; b : forall A:Type, A }.