mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 15:23:46 +00:00
20 lines
450 B
Rust
20 lines
450 B
Rust
|
//@ check-pass
|
||
|
|
||
|
// Verify that variant count intrinsic can still evaluate for types like `Option<T>`.
|
||
|
|
||
|
#![feature(variant_count)]
|
||
|
|
||
|
pub struct GetVariantCount<T>(T);
|
||
|
|
||
|
impl<T> GetVariantCount<T> {
|
||
|
pub const VALUE: usize = std::mem::variant_count::<T>();
|
||
|
}
|
||
|
|
||
|
const fn check_variant_count<T>() -> bool {
|
||
|
matches!(GetVariantCount::<Option<T>>::VALUE, GetVariantCount::<Option<()>>::VALUE)
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
assert!(check_variant_count::<()>());
|
||
|
}
|