summaryrefslogtreecommitdiff
path: root/tests/ui/lifetimes
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-02-10 10:10:12 +0000
committerbors <bors@rust-lang.org>2023-02-10 10:10:12 +0000
commitd1ac43a9b9a8250d858705b0796dfed6186e18db (patch)
tree61bcd957939f16716173238f6bc142a0bb91138e /tests/ui/lifetimes
parent9b8dbd558c1c4b25c55d987e22baba312ae980ad (diff)
parent3689295a6bf43a6defbb392e1aca08757fa14a59 (diff)
Auto merge of #107652 - estebank:re_error, r=oli-obk
Introduce `ReError` CC #69314 r? `@nagisa`
Diffstat (limited to 'tests/ui/lifetimes')
-rw-r--r--tests/ui/lifetimes/issue-26638.stderr4
-rw-r--r--tests/ui/lifetimes/issue-69314.fixed22
-rw-r--r--tests/ui/lifetimes/issue-69314.rs22
-rw-r--r--tests/ui/lifetimes/issue-69314.stderr26
-rw-r--r--tests/ui/lifetimes/unusual-rib-combinations.rs2
-rw-r--r--tests/ui/lifetimes/unusual-rib-combinations.stderr2
6 files changed, 74 insertions, 4 deletions
diff --git a/tests/ui/lifetimes/issue-26638.stderr b/tests/ui/lifetimes/issue-26638.stderr
index 4dfacb93801..30afcecf827 100644
--- a/tests/ui/lifetimes/issue-26638.stderr
+++ b/tests/ui/lifetimes/issue-26638.stderr
@@ -40,9 +40,9 @@ error[E0308]: mismatched types
LL | fn parse_type(iter: Box<dyn Iterator<Item=&str>+'static>) -> &str { iter.next() }
| ---- ^^^^^^^^^^^ expected `&str`, found `Option<&str>`
| |
- | expected `&'static str` because of return type
+ | expected `&str` because of return type
|
- = note: expected reference `&'static str`
+ = note: expected reference `&str`
found enum `Option<&str>`
error[E0061]: this function takes 1 argument but 0 arguments were supplied
diff --git a/tests/ui/lifetimes/issue-69314.fixed b/tests/ui/lifetimes/issue-69314.fixed
new file mode 100644
index 00000000000..41116d4ea61
--- /dev/null
+++ b/tests/ui/lifetimes/issue-69314.fixed
@@ -0,0 +1,22 @@
+// run-rustfix
+// edition:2021
+#![allow(dead_code, unused_mut, unused_variables)]
+struct A {}
+struct Msg<'a> {
+ s: &'a [i32],
+}
+impl A {
+ async fn g(buf: &[i32]) -> Msg<'_> {
+ Msg { s: &buf[0..1] }
+ }
+ async fn f() {
+ let mut buf = [0; 512];
+ let m2 = &buf[..]; //~ ERROR `buf` does not live long enough
+ let m = Self::g(m2).await;
+ Self::f2(m).await;
+ }
+ async fn f2(m: Msg<'_>) {}
+ //~^ ERROR implicit elided lifetime not allowed here
+}
+
+fn main() {}
diff --git a/tests/ui/lifetimes/issue-69314.rs b/tests/ui/lifetimes/issue-69314.rs
new file mode 100644
index 00000000000..17445341eb6
--- /dev/null
+++ b/tests/ui/lifetimes/issue-69314.rs
@@ -0,0 +1,22 @@
+// run-rustfix
+// edition:2021
+#![allow(dead_code, unused_mut, unused_variables)]
+struct A {}
+struct Msg<'a> {
+ s: &'a [i32],
+}
+impl A {
+ async fn g(buf: &[i32]) -> Msg<'_> {
+ Msg { s: &buf[0..1] }
+ }
+ async fn f() {
+ let mut buf = [0; 512];
+ let m2 = &buf[..]; //~ ERROR `buf` does not live long enough
+ let m = Self::g(m2).await;
+ Self::f2(m).await;
+ }
+ async fn f2(m: Msg) {}
+ //~^ ERROR implicit elided lifetime not allowed here
+}
+
+fn main() {}
diff --git a/tests/ui/lifetimes/issue-69314.stderr b/tests/ui/lifetimes/issue-69314.stderr
new file mode 100644
index 00000000000..7ae6789285b
--- /dev/null
+++ b/tests/ui/lifetimes/issue-69314.stderr
@@ -0,0 +1,26 @@
+error[E0726]: implicit elided lifetime not allowed here
+ --> $DIR/issue-69314.rs:18:20
+ |
+LL | async fn f2(m: Msg) {}
+ | ^^^ expected lifetime parameter
+ |
+help: indicate the anonymous lifetime
+ |
+LL | async fn f2(m: Msg<'_>) {}
+ | ++++
+
+error[E0597]: `buf` does not live long enough
+ --> $DIR/issue-69314.rs:14:19
+ |
+LL | let m2 = &buf[..];
+ | ^^^ borrowed value does not live long enough
+LL | let m = Self::g(m2).await;
+ | ----------- argument requires that `buf` is borrowed for `'static`
+LL | Self::f2(m).await;
+LL | }
+ | - `buf` dropped here while still borrowed
+
+error: aborting due to 2 previous errors
+
+Some errors have detailed explanations: E0597, E0726.
+For more information about an error, try `rustc --explain E0597`.
diff --git a/tests/ui/lifetimes/unusual-rib-combinations.rs b/tests/ui/lifetimes/unusual-rib-combinations.rs
index b4c86aab863..1c122f42e59 100644
--- a/tests/ui/lifetimes/unusual-rib-combinations.rs
+++ b/tests/ui/lifetimes/unusual-rib-combinations.rs
@@ -23,6 +23,6 @@ fn c<T = u8()>() {}
// Elided lifetime in path in ConstGeneric
fn d<const C: S>() {}
//~^ ERROR missing lifetime specifier
-//~| ERROR `S<'static>` is forbidden as the type of a const generic parameter
+//~| ERROR `S<'_>` is forbidden as the type of a const generic parameter
fn main() {}
diff --git a/tests/ui/lifetimes/unusual-rib-combinations.stderr b/tests/ui/lifetimes/unusual-rib-combinations.stderr
index 6d7b4250698..68f4fce0178 100644
--- a/tests/ui/lifetimes/unusual-rib-combinations.stderr
+++ b/tests/ui/lifetimes/unusual-rib-combinations.stderr
@@ -46,7 +46,7 @@ LL | fn a() -> [u8; foo::()] {
= note: expected type `usize`
found fn item `fn() {foo}`
-error: `S<'static>` is forbidden as the type of a const generic parameter
+error: `S<'_>` is forbidden as the type of a const generic parameter
--> $DIR/unusual-rib-combinations.rs:24:15
|
LL | fn d<const C: S>() {}