//@ compile-flags: -Znext-solver //@ check-pass // If we normalize using the impl here the constraints from normalization and // trait goals can differ. This is especially bad if normalization results // in stronger constraints. trait Trait<'a> { type Assoc; } impl Trait<'static> for T { type Assoc = (); } // normalizing requires `'a == 'static`, the trait bound does not. fn foo<'a, T: Trait<'a>>(_: T::Assoc) {} fn main() {}