--> $DIR/ex2b-push-no-existing-names.rs:16:5
|
LL | fn foo(x: &mut Vec<Ref<i32>>, y: Ref<i32>) {
- | -------- -------- lifetime `'1` appears in this type
- | |
- | lifetime `'2` appears in this type
+ | - - has type `Ref<'1, i32>`
+ | |
+ | has type `&mut std::vec::Vec<Ref<'2, i32>>`
LL | x.push(y); //~ ERROR lifetime mismatch
| ^^^^^^^^^ argument requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-both-are-structs-2.rs:16:5
|
LL | fn foo(mut x: Ref, y: Ref) {
- | --- --- lifetime `'1` appears in this type
- | |
- | lifetime `'2` appears in this type
+ | ----- - has type `Ref<'_, '1>`
+ | |
+ | has type `Ref<'_, '2>`
LL | x.b = y.b; //~ ERROR lifetime mismatch
| ^^^^^^^^^ requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-both-are-structs-3.rs:16:5
|
LL | fn foo(mut x: Ref) {
- | ---
- | |
- | lifetime `'1` appears in this type
- | lifetime `'2` appears in this type
+ | -----
+ | |
+ | has type `Ref<'_, '1>`
+ | has type `Ref<'2, '_>`
LL | x.a = x.b; //~ ERROR lifetime mismatch
| ^^^^^^^^^ requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-both-are-structs-4.rs:16:5
|
LL | fn foo(mut x: Ref) {
- | ---
- | |
- | lifetime `'1` appears in this type
- | lifetime `'2` appears in this type
+ | -----
+ | |
+ | has type `Ref<'_, '1>`
+ | has type `Ref<'2, '_>`
LL | x.a = x.b; //~ ERROR lifetime mismatch
| ^^^^^^^^^ requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-both-are-structs.rs:15:5
|
LL | fn foo(mut x: Vec<Ref>, y: Ref) {
- | --- --- lifetime `'1` appears in this type
- | |
- | lifetime `'2` appears in this type
+ | ----- - has type `Ref<'1>`
+ | |
+ | has type `std::vec::Vec<Ref<'2>>`
LL | x.push(y); //~ ERROR lifetime mismatch
| ^^^^^^^^^ argument requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-one-is-struct-2.rs:14:5
|
LL | fn foo(mut x: Ref, y: &u32) {
- | --- - let's call the lifetime of this reference `'2`
- | |
- | lifetime `'1` appears in this type
+ | ----- - let's call the lifetime of this reference `'2`
+ | |
+ | has type `Ref<'_, '1>`
LL | y = x.b; //~ ERROR lifetime mismatch
| ^^^^^^^ requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-one-is-struct-3.rs:14:5
|
LL | fn foo(mut y: Ref, x: &u32) {
- | --- - let's call the lifetime of this reference `'1`
- | |
- | lifetime `'2` appears in this type
+ | ----- - let's call the lifetime of this reference `'1`
+ | |
+ | has type `Ref<'_, '2>`
LL | y.b = x; //~ ERROR lifetime mismatch
| ^^^^^^^ requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-one-is-struct-4.rs:14:5
|
LL | fn foo(mut y: Ref, x: &u32) {
- | --- - let's call the lifetime of this reference `'1`
- | |
- | lifetime `'2` appears in this type
+ | ----- - let's call the lifetime of this reference `'1`
+ | |
+ | has type `Ref<'_, '2>`
LL | y.b = x; //~ ERROR lifetime mismatch
| ^^^^^^^ requires that `'1` must outlive `'2`
--> $DIR/ex3-both-anon-regions-one-is-struct.rs:17:5
|
LL | fn foo(mut x: Ref, y: &u32) {
- | --- - let's call the lifetime of this reference `'1`
- | |
- | lifetime `'2` appears in this type
+ | ----- - let's call the lifetime of this reference `'1`
+ | |
+ | has type `Ref<'_, '2>`
LL | x.b = y; //~ ERROR lifetime mismatch
| ^^^^^^^ requires that `'1` must outlive `'2`
#![feature(nll)]
#![feature(in_band_lifetimes)]
+#![feature(impl_header_lifetime_elision)]
struct Foo<'a, 'b> {
x: &'a u32,
error: unsatisfied lifetime constraints
- --> $DIR/issue-52742.rs:25:9
+ --> $DIR/issue-52742.rs:26:9
|
LL | fn take_bar(&mut self, b: Bar<'_>) {
| --------- -- let's call this `'1`