35 lines
485 B
Rust
35 lines
485 B
Rust
//@ 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
|
|
}
|