// Test that we are able to establish that `<T as | |
// MyTrait<'a>>::Output: 'a` outlives `'a` (because the trait says | |
// so). | |
// | |
//@ check-pass | |
trait MyTrait<'a> { | |
type Output: 'a; | |
} | |
fn foo<'a, T>() -> &'a () | |
where | |
T: MyTrait<'a>, | |
{ | |
bar::<T::Output>() | |
} | |
fn bar<'a, T>() -> &'a () | |
where | |
T: 'a, | |
{ | |
&() | |
} | |
fn main() {} |