rust/tests/ui/const-generics/inhabited-assoc-ty-ice-1.rs

29 lines
470 B
Rust

//@ run-pass
#![feature(generic_const_exprs)]
#![allow(incomplete_features)]
// This tests that the inhabited check doesn't cause
// ICEs by trying to evaluate `T::ASSOC` with an incorrect `ParamEnv`.
trait Foo {
const ASSOC: usize = 1;
}
#[allow(dead_code)]
struct Iced<T: Foo>(T, [(); T::ASSOC])
where
[(); T::ASSOC]: ;
impl Foo for u32 {}
fn foo<T: Foo>()
where
[(); T::ASSOC]: ,
{
let _iced: Iced<T> = return;
}
fn main() {
foo::<u32>();
}