]> git.proxmox.com Git - rustc.git/blob - tests/ui/hygiene/auxiliary/variants.rs
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / ui / hygiene / auxiliary / variants.rs
1 #![feature(decl_macro)]
2
3 #[rustfmt::skip]
4 macro x($macro_name:ident, $macro2_name:ident, $type_name:ident, $variant_name:ident) {
5 #[repr(u8)]
6 pub enum $type_name {
7 Variant = 0,
8 $variant_name = 1,
9 }
10
11 #[macro_export]
12 macro_rules! $macro_name {
13 () => {{
14 assert_eq!($type_name::Variant as u8, 0);
15 assert_eq!($type_name::$variant_name as u8, 1);
16 assert_eq!(<$type_name>::Variant as u8, 0);
17 assert_eq!(<$type_name>::$variant_name as u8, 1);
18 }};
19 }
20
21 pub macro $macro2_name {
22 () => {{
23 assert_eq!($type_name::Variant as u8, 0);
24 assert_eq!($type_name::$variant_name as u8, 1);
25 assert_eq!(<$type_name>::Variant as u8, 0);
26 assert_eq!(<$type_name>::$variant_name as u8, 1);
27 }},
28 }
29 }
30
31 x!(test_variants, test_variants2, MyEnum, Variant);
32
33 pub fn check_variants() {
34 test_variants!();
35 test_variants2!();
36 }