//@ 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<T> 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() {} |