//@ 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::<u32>(); | |
} | |
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<I>() | |
where I: Foo, | |
I::Item: Bar | |
{ | |
Vec::<<I::Item as Bar>::Item2>::new(); // ICE occurs processing this line | |
} |