about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/generic-associated-types/collectivity-regression.rs24
-rw-r--r--src/test/ui/generic-associated-types/collectivity-regression.stderr14
-rw-r--r--src/test/ui/generic-associated-types/issue-92096.rs2
-rw-r--r--src/test/ui/nll/snocat-regression.rs16
-rw-r--r--src/test/ui/nll/snocat-regression.stderr14
5 files changed, 69 insertions, 1 deletions
diff --git a/src/test/ui/generic-associated-types/collectivity-regression.rs b/src/test/ui/generic-associated-types/collectivity-regression.rs
new file mode 100644
index 00000000000..fb736843907
--- /dev/null
+++ b/src/test/ui/generic-associated-types/collectivity-regression.rs
@@ -0,0 +1,24 @@
+// Regression test from https://github.com/rust-lang/rust/pull/98109
+
+#![feature(generic_associated_types)]
+
+pub trait Get {
+    type Value<'a>
+    where
+        Self: 'a;
+}
+
+fn multiply_at<T>(x: T)
+where
+    for<'a> T: Get<Value<'a> = ()>,
+{
+    || {
+        //~^ `T` does not live long enough
+        //
+        // FIXME(#98437). This regressed at some point and
+        // probably should work.
+        let _x = x;
+    };
+}
+
+fn main() {}
diff --git a/src/test/ui/generic-associated-types/collectivity-regression.stderr b/src/test/ui/generic-associated-types/collectivity-regression.stderr
new file mode 100644
index 00000000000..a858dd7fddc
--- /dev/null
+++ b/src/test/ui/generic-associated-types/collectivity-regression.stderr
@@ -0,0 +1,14 @@
+error: `T` does not live long enough
+  --> $DIR/collectivity-regression.rs:15:5
+   |
+LL | /     || {
+LL | |
+LL | |         //
+LL | |         // FIXME(#98437). This regressed at some point and
+LL | |         // probably should work.
+LL | |         let _x = x;
+LL | |     };
+   | |_____^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/generic-associated-types/issue-92096.rs b/src/test/ui/generic-associated-types/issue-92096.rs
index 59dd7ea5563..377b8164ad5 100644
--- a/src/test/ui/generic-associated-types/issue-92096.rs
+++ b/src/test/ui/generic-associated-types/issue-92096.rs
@@ -19,7 +19,7 @@ where
     async move { c.connect().await }
     //~^ ERROR `C` does not live long enough
     //
-    // FIXME. This is because we infer at some point a value of
+    // FIXME(#71723). This is because we infer at some point a value of
     //
     // impl Future<Output = <C as Client>::Connection<'_>>
     //
diff --git a/src/test/ui/nll/snocat-regression.rs b/src/test/ui/nll/snocat-regression.rs
new file mode 100644
index 00000000000..b2e5995aa5b
--- /dev/null
+++ b/src/test/ui/nll/snocat-regression.rs
@@ -0,0 +1,16 @@
+// Regression test from https://github.com/rust-lang/rust/pull/98109
+
+pub fn negotiate<S>(link: S)
+where
+    for<'a> &'a S: 'a,
+{
+    || {
+        //~^ ERROR `S` does not live long enough
+        //
+        // FIXME(#98437). This regressed at some point and
+        // probably should work.
+        let _x = link;
+    };
+}
+
+fn main() {}
diff --git a/src/test/ui/nll/snocat-regression.stderr b/src/test/ui/nll/snocat-regression.stderr
new file mode 100644
index 00000000000..0868984734d
--- /dev/null
+++ b/src/test/ui/nll/snocat-regression.stderr
@@ -0,0 +1,14 @@
+error: `S` does not live long enough
+  --> $DIR/snocat-regression.rs:7:5
+   |
+LL | /     || {
+LL | |
+LL | |         //
+LL | |         // FIXME(#98437). This regressed at some point and
+LL | |         // probably should work.
+LL | |         let _x = link;
+LL | |     };
+   | |_____^
+
+error: aborting due to previous error
+