error[E0309]: the parameter type `T` may not live long enough --> $DIR/regions-implied-bounds-projection-gap-1.rs:16:5 | LL | fn func<'x, T:Trait1<'x>>(t: &'x T::Foo) | -- the parameter type `T` must be valid for the lifetime `'x` as defined here... LL | { LL | wf::<&'x T>(); | ^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds | help: consider adding an explicit lifetime bound | LL | fn func<'x, T:Trait1<'x> + 'x>(t: &'x T::Foo) | ++++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0309`.