File tree 1 file changed +15
-0
lines changed
1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change 8
8
// option. This file may not be copied, modified, or distributed
9
9
// except according to those terms.
10
10
11
+ #![ feature( core) ]
12
+
11
13
extern crate core;
12
14
use core:: intrinsics:: discriminant_value;
13
15
@@ -25,6 +27,14 @@ enum CLike2 {
25
27
D
26
28
}
27
29
30
+ #[ repr( i8 ) ]
31
+ enum CLike3 {
32
+ A = 5 ,
33
+ B ,
34
+ C = -1 ,
35
+ D
36
+ }
37
+
28
38
enum ADT {
29
39
First ( u32 , u32 ) ,
30
40
Second ( u64 )
@@ -50,6 +60,11 @@ pub fn main() {
50
60
assert_eq ! ( discriminant_value( & CLike2 :: C ) , 19 ) ;
51
61
assert_eq ! ( discriminant_value( & CLike2 :: D ) , 20 ) ;
52
62
63
+ assert_eq ! ( discriminant_value( & CLike3 :: A ) , 5 ) ;
64
+ assert_eq ! ( discriminant_value( & CLike3 :: B ) , 6 ) ;
65
+ assert_eq ! ( discriminant_value( & CLike3 :: C ) , -1_i8 as u64 ) ;
66
+ assert_eq ! ( discriminant_value( & CLike3 :: D ) , 0 ) ;
67
+
53
68
assert_eq ! ( discriminant_value( & ADT :: First ( 0 , 0 ) ) , 0 ) ;
54
69
assert_eq ! ( discriminant_value( & ADT :: Second ( 5 ) ) , 1 ) ;
55
70
You can’t perform that action at this time.
0 commit comments