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