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:34: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:39: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: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0623`.