//@ check-pass //@ revisions: current next //@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Make sure that we can normalize `>::Assoc` to `&'a T` and get // its implied bounds in impl header. trait Ref<'a> { type Assoc; } impl<'a, T> Ref<'a> for T where T: 'a { type Assoc = &'a T; } fn outlives<'a, T: 'a>() {} trait Trait<'a, T> { fn test(); } impl<'a, T> Trait<'a, T> for >::Assoc { fn test() { outlives::<'a, T>(); } } fn main() {}