2024-01-10 10:54:43 -06:00
|
|
|
//! Check that pattern matching can observe the hidden type of opaque types.
|
2024-02-16 14:02:50 -06:00
|
|
|
//@ check-pass
|
2024-01-10 10:54:43 -06:00
|
|
|
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.. => (),
|
|
|
|
}
|
|
|
|
}
|