]>
git.proxmox.com Git - rustc.git/blob - src/test/ui/enum-discriminant/discriminant_value.rs
2 #![allow(stable_features)]
3 #![feature(arbitrary_enum_discriminant, core, core_intrinsics)]
6 use core
::intrinsics
::discriminant_value
;
35 enum NullablePointer
{
36 Something(&'
static u32),
40 static CONST
: u32 = 0xBEEF;
54 assert_eq
!(discriminant_value(&CLike1
::A
), 0);
55 assert_eq
!(discriminant_value(&CLike1
::B
), 1);
56 assert_eq
!(discriminant_value(&CLike1
::C
), 2);
57 assert_eq
!(discriminant_value(&CLike1
::D
), 3);
59 assert_eq
!(discriminant_value(&CLike2
::A
), 5);
60 assert_eq
!(discriminant_value(&CLike2
::B
), 2);
61 assert_eq
!(discriminant_value(&CLike2
::C
), 19);
62 assert_eq
!(discriminant_value(&CLike2
::D
), 20);
64 assert_eq
!(discriminant_value(&CLike3
::A
), 5);
65 assert_eq
!(discriminant_value(&CLike3
::B
), 6);
66 assert_eq
!(discriminant_value(&CLike3
::C
), -1_i8 as u64);
67 assert_eq
!(discriminant_value(&CLike3
::D
), 0);
69 assert_eq
!(discriminant_value(&ADT
::First(0,0)), 0);
70 assert_eq
!(discriminant_value(&ADT
::Second(5)), 1);
72 assert_eq
!(discriminant_value(&NullablePointer
::Nothing
), 1);
73 assert_eq
!(discriminant_value(&NullablePointer
::Something(&CONST
)), 0);
75 assert_eq
!(discriminant_value(&10), 0);
76 assert_eq
!(discriminant_value(&"test"), 0);
78 assert_eq
!(3, discriminant_value(&Mixed
::Unit
));
79 assert_eq
!(2, discriminant_value(&Mixed
::Tuple(5)));
80 assert_eq
!(1, discriminant_value(&Mixed
::Struct{a: 7, b: 11}
));