-error[E0623]: lifetime mismatch
+error: lifetime may not live long enough
--> $DIR/ex3-both-anon-regions-self-is-anon.rs:7:19
|
LL | fn foo<'a>(&self, x: &Foo) -> &Foo {
- | ---- ----
- | |
- | this parameter and the return type are declared with different lifetimes...
-LL | if true { x } else { self } //~ ERROR lifetime mismatch
- | ^ ...but data from `x` is returned here
+ | - - let's call the lifetime of this reference `'1`
+ | |
+ | let's call the lifetime of this reference `'2`
+LL | if true { x } else { self }
+ | ^ associated function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
+ |
+help: consider introducing a named lifetime parameter and update trait if needed
+ |
+LL | fn foo<'a>(&'a self, x: &'a Foo) -> &Foo {
+ | ++ ++
error: aborting due to previous error
-For more information about this error, try `rustc --explain E0623`.