// Test that if we need to prove that `>::Output: // 'a`, but we only know that `>::Output: 'a`, that // doesn't suffice. trait MyTrait<'a> { type Output; } fn foo1<'a, 'b, T>() -> &'a () where for<'x> T: MyTrait<'x>, >::Output: 'a, { bar::<>::Output>() //~ ERROR the associated type `>::Output` may not live long enough } fn bar<'a, T>() -> &'a () where T: 'a, { &() } fn main() {}