aboutsummaryrefslogtreecommitdiff
path: root/test-suite
diff options
context:
space:
mode:
authorHugo Herbelin2020-10-09 17:32:44 +0000
committerHugo Herbelin2020-10-16 01:29:19 +0200
commit0f403373e6ecc1be806b9c29812f5c9f48c321de (patch)
tree5537154ba078467d8932787ed4b07417f9238481 /test-suite
parent12ea3318943f2a47f45d939aa206acc263a6341d (diff)
Fixes/enhancements with local definitions in records.
Fixes implicit arguments from the body of a defined field not taken into account. Get (a bit) more information for detection of SProp relevance in implicitly-typed defined field. (It should be done at the very end of the inference phase, though, because some evars may not yet be instantiated.)
Diffstat (limited to 'test-suite')
-rw-r--r--test-suite/success/Record.v15
1 files changed, 15 insertions, 0 deletions
diff --git a/test-suite/success/Record.v b/test-suite/success/Record.v
index ce07512a1e..beb424dd40 100644
--- a/test-suite/success/Record.v
+++ b/test-suite/success/Record.v
@@ -93,3 +93,18 @@ Record R : Type := {
(* This is used in a couple of development such as UniMatch *)
Record S {A:Type} := { a : A; b : forall A:Type, A }.
+
+(* Bug #13165 on implicit arguments in defined fields *)
+Record T := {
+ f {n:nat} (p:n=n) := nat;
+ g := f (eq_refl 0)
+}.
+
+(* Slight improvement in when SProp relevance is detected *)
+Inductive True : SProp := I.
+Inductive eqI : True -> SProp := reflI : eqI I.
+
+Record U (c:True) := {
+ u := c;
+ v := reflI : eqI u;
+ }.