//@ compile-flags: -Znext-solver | |
//@ check-pass | |
trait Super { | |
type Assoc; | |
} | |
trait Bound { | |
type Assoc: Super<Assoc = u32>; | |
} | |
trait Trait: Super {} | |
// Elaborating the environment results in a `T::Assoc: Super` where-bound. | |
// This where-bound must not prevent normalization via the `Super<Assoc = u32>` | |
// item bound. | |
fn heck<T: Bound<Assoc: Trait>>(x: <T::Assoc as Super>::Assoc) -> u32 { | |
x | |
} | |
fn main() {} |