1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
error[E0623]: lifetime mismatch
--> $DIR/hrlt-implied-trait-bounds-guard.rs:29:29
|
LL | fn badboi<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) -> &'out T {
| ^^^^^^^^^^^^^^^^^^ -------
| |
| this parameter and the return type are declared with different lifetimes...
| ...but data from `x` is returned here
error[E0623]: lifetime mismatch
--> $DIR/hrlt-implied-trait-bounds-guard.rs:35:30
|
LL | fn badboi2<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) {
| ^^^^^^^^^^^^^^^^^^
| |
| this type is declared with multiple lifetimes...
| ...but data with one lifetime flows into the other here
error[E0623]: lifetime mismatch
--> $DIR/hrlt-implied-trait-bounds-guard.rs:41:30
|
LL | fn badboi3<'in_, 'out, T>(a: Foo<'in_, 'out, (&'in_ T, &'out T)>, sadness: &'in_ T) {
| ^^^^^^^^^^^^^^^^^-------^^-------^^
| | |
| | these two types are declared with different lifetimes...
| ...but data from `a` flows into `a` here
error: lifetime may not live long enough
--> $DIR/hrlt-implied-trait-bounds-guard.rs:31:5
|
LL | fn badboi<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) -> &'out T {
| ---- ---- lifetime `'out` defined here
| |
| lifetime `'in_` defined here
LL |
LL | sadness.cast()
| ^^^^^^^^^^^^^^ function was supposed to return data with lifetime `'out` but it is returning data with lifetime `'in_`
|
= help: consider adding the following bound: `'in_: 'out`
error: lifetime may not live long enough
--> $DIR/hrlt-implied-trait-bounds-guard.rs:37:12
|
LL | fn badboi2<'in_, 'out, T>(x: Foo<'in_, 'out, T>, sadness: &'in_ T) {
| ---- ---- lifetime `'out` defined here
| |
| lifetime `'in_` defined here
LL |
LL | let _: &'out T = sadness.cast();
| ^^^^^^^ type annotation requires that `'in_` must outlive `'out`
|
= help: consider adding the following bound: `'in_: 'out`
error: lifetime may not live long enough
--> $DIR/hrlt-implied-trait-bounds-guard.rs:43:12
|
LL | fn badboi3<'in_, 'out, T>(a: Foo<'in_, 'out, (&'in_ T, &'out T)>, sadness: &'in_ T) {
| ---- ---- lifetime `'out` defined here
| |
| lifetime `'in_` defined here
LL |
LL | let _: &'out T = sadness.cast();
| ^^^^^^^ type annotation requires that `'in_` must outlive `'out`
|
= help: consider adding the following bound: `'in_: 'out`
error: aborting due to 6 previous errors
For more information about this error, try `rustc --explain E0623`.
|