mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-31 22:41:50 +00:00
20 lines
449 B
Rust
20 lines
449 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::<()>());
|
|
}
|