rust/tests/ui/impl-trait/in-ctfe/match-arm-exhaustive.rs

25 lines
398 B
Rust

//! Check that pattern matching can observe the hidden type of opaque types.
//@ check-pass
trait MyTrait: Copy {
const ASSOC: u8;
}
impl MyTrait for () {
const ASSOC: u8 = 0;
}
const fn yeet() -> impl MyTrait {}
const fn output<T: MyTrait>(_: T) -> u8 {
<T as MyTrait>::ASSOC
}
const CT: u8 = output(yeet());
fn main() {
match 0 {
CT => (),
1.. => (),
}
}