arbitrary_self_types lifetime elision: --bless --compare-mode=nll
This commit is contained in:
parent
34f59eb9c5
commit
05f67a297a
@ -0,0 +1,14 @@
|
|||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/arbitrary_self_types_pin_lifetime_impl_trait.rs:8:31
|
||||||
|
|
|
||||||
|
LL | fn f(self: Pin<&Self>) -> impl Clone { self }
|
||||||
|
| - ^^^^^^^^^^ opaque type requires that `'1` must outlive `'static`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'1`
|
||||||
|
help: to allow this `impl Trait` to capture borrowed data with lifetime `'1`, add `'_` as a constraint
|
||||||
|
|
|
||||||
|
LL | fn f(self: Pin<&Self>) -> impl Clone + '_ { self }
|
||||||
|
| ^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
@ -0,0 +1,28 @@
|
|||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:8:46
|
||||||
|
|
|
||||||
|
LL | fn a(self: Pin<&Foo>, f: &Foo) -> &Foo { f }
|
||||||
|
| - - ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
| | |
|
||||||
|
| | let's call the lifetime of this reference `'1`
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:10:69
|
||||||
|
|
|
||||||
|
LL | fn c(self: Pin<&Self>, f: &Foo, g: &Foo) -> (Pin<&Foo>, &Foo) { (self, f) }
|
||||||
|
| - - ^^^^^^^^^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
| | |
|
||||||
|
| | let's call the lifetime of this reference `'1`
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/arbitrary_self_types_pin_lifetime_mismatch.rs:15:58
|
||||||
|
|
|
||||||
|
LL | fn bar<'a>(self: Alias<&Self>, arg: &'a ()) -> &() { arg }
|
||||||
|
| -- ---- has type `std::pin::Pin<&'1 Foo>` ^^^ function was supposed to return data with lifetime `'1` but it is returning data with lifetime `'a`
|
||||||
|
| |
|
||||||
|
| lifetime `'a` defined here
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
62
src/test/ui/self/elision/lt-ref-self.nll.stderr
Normal file
62
src/test/ui/self/elision/lt-ref-self.nll.stderr
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/lt-ref-self.rs:12:9
|
||||||
|
|
|
||||||
|
LL | fn ref_self(&self, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/lt-ref-self.rs:18:9
|
||||||
|
|
|
||||||
|
LL | fn ref_Self(self: &Self, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/lt-ref-self.rs:22:9
|
||||||
|
|
|
||||||
|
LL | fn box_ref_Self(self: Box<&Self>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/lt-ref-self.rs:26:9
|
||||||
|
|
|
||||||
|
LL | fn pin_ref_Self(self: Pin<&Self>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/lt-ref-self.rs:30:9
|
||||||
|
|
|
||||||
|
LL | fn box_box_ref_Self(self: Box<Box<&Self>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/lt-ref-self.rs:34:9
|
||||||
|
|
|
||||||
|
LL | fn box_pin_Self(self: Box<Pin<&Self>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: aborting due to 6 previous errors
|
||||||
|
|
62
src/test/ui/self/elision/ref-mut-self.nll.stderr
Normal file
62
src/test/ui/self/elision/ref-mut-self.nll.stderr
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-self.rs:12:9
|
||||||
|
|
|
||||||
|
LL | fn ref_self(&mut self, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-self.rs:18:9
|
||||||
|
|
|
||||||
|
LL | fn ref_Self(self: &mut Self, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-self.rs:22:9
|
||||||
|
|
|
||||||
|
LL | fn box_ref_Self(self: Box<&mut Self>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-self.rs:26:9
|
||||||
|
|
|
||||||
|
LL | fn pin_ref_Self(self: Pin<&mut Self>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-self.rs:30:9
|
||||||
|
|
|
||||||
|
LL | fn box_box_ref_Self(self: Box<Box<&mut Self>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-self.rs:34:9
|
||||||
|
|
|
||||||
|
LL | fn box_pin_ref_Self(self: Box<Pin<&mut Self>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: aborting due to 6 previous errors
|
||||||
|
|
52
src/test/ui/self/elision/ref-mut-struct.nll.stderr
Normal file
52
src/test/ui/self/elision/ref-mut-struct.nll.stderr
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-struct.rs:12:9
|
||||||
|
|
|
||||||
|
LL | fn ref_Struct(self: &mut Struct, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-struct.rs:16:9
|
||||||
|
|
|
||||||
|
LL | fn box_ref_Struct(self: Box<&mut Struct>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-struct.rs:20:9
|
||||||
|
|
|
||||||
|
LL | fn pin_ref_Struct(self: Pin<&mut Struct>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-struct.rs:24:9
|
||||||
|
|
|
||||||
|
LL | fn box_box_ref_Struct(self: Box<Box<&mut Struct>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-mut-struct.rs:28:9
|
||||||
|
|
|
||||||
|
LL | fn box_pin_ref_Struct(self: Box<Pin<&mut Struct>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: aborting due to 5 previous errors
|
||||||
|
|
72
src/test/ui/self/elision/ref-self.nll.stderr
Normal file
72
src/test/ui/self/elision/ref-self.nll.stderr
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-self.rs:21:9
|
||||||
|
|
|
||||||
|
LL | fn ref_self(&self, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-self.rs:27:9
|
||||||
|
|
|
||||||
|
LL | fn ref_Self(self: &Self, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-self.rs:31:9
|
||||||
|
|
|
||||||
|
LL | fn box_ref_Self(self: Box<&Self>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-self.rs:35:9
|
||||||
|
|
|
||||||
|
LL | fn pin_ref_Self(self: Pin<&Self>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-self.rs:39:9
|
||||||
|
|
|
||||||
|
LL | fn box_box_ref_Self(self: Box<Box<&Self>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-self.rs:43:9
|
||||||
|
|
|
||||||
|
LL | fn box_pin_ref_Self(self: Box<Pin<&Self>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-self.rs:47:9
|
||||||
|
|
|
||||||
|
LL | fn wrap_ref_Self_Self(self: Wrap<&Self, Self>, f: &u8) -> &u8 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: aborting due to 7 previous errors
|
||||||
|
|
52
src/test/ui/self/elision/ref-struct.nll.stderr
Normal file
52
src/test/ui/self/elision/ref-struct.nll.stderr
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-struct.rs:12:9
|
||||||
|
|
|
||||||
|
LL | fn ref_Struct(self: &Struct, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-struct.rs:16:9
|
||||||
|
|
|
||||||
|
LL | fn box_ref_Struct(self: Box<&Struct>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-struct.rs:20:9
|
||||||
|
|
|
||||||
|
LL | fn pin_ref_Struct(self: Pin<&Struct>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-struct.rs:24:9
|
||||||
|
|
|
||||||
|
LL | fn box_box_ref_Struct(self: Box<Box<&Struct>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: lifetime may not live long enough
|
||||||
|
--> $DIR/ref-struct.rs:28:9
|
||||||
|
|
|
||||||
|
LL | fn box_pin_Struct(self: Box<Pin<&Struct>>, f: &u32) -> &u32 {
|
||||||
|
| - - let's call the lifetime of this reference `'1`
|
||||||
|
| |
|
||||||
|
| let's call the lifetime of this reference `'2`
|
||||||
|
LL | f
|
||||||
|
| ^ function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
|
||||||
|
|
||||||
|
error: aborting due to 5 previous errors
|
||||||
|
|
Loading…
Reference in New Issue
Block a user