// compile-flags: -Z mir-opt-level=4 // build-pass // This used to ICE in const-prop due // to an empty ParamEnv being used during normalization // of a generic type fn main() { join_all::(); } trait Foo { type Item; } impl Foo for u32 { type Item = u8; } trait Bar { type Item2; } impl Bar for u8 { type Item2 = u64; } fn join_all() where I: Foo, I::Item: Bar { Vec::<::Item2>::new(); // ICE occurs processing this line }