File tree Expand file tree Collapse file tree 1 file changed +26
-7
lines changed Expand file tree Collapse file tree 1 file changed +26
-7
lines changed Original file line number Diff line number Diff line change 1010
1111#![ feature( const_fn) ]
1212
13+ type Field1 = i32 ;
14+ type Field2 = f32 ;
15+ type Field3 = i64 ;
16+
1317union DummyUnion {
14- field1 : i32 ,
15- field2 : i32 ,
18+ field1 : Field1 ,
19+ field2 : Field2 ,
20+ field3 : Field3 ,
21+ }
22+
23+ const FLOAT1_AS_I32 : i32 = 1065353216 ;
24+ const UNION : DummyUnion = DummyUnion { field1 : FLOAT1_AS_I32 } ;
25+
26+ const fn read_field1 ( ) -> Field1 {
27+ const FIELD1 : Field1 = unsafe { UNION . field1 } ;
28+ FIELD1
29+ }
30+
31+ const fn read_field2 ( ) -> Field2 {
32+ const FIELD2 : Field2 = unsafe { UNION . field2 } ;
33+ FIELD2
1634}
1735
18- const fn read_field ( ) -> i32 {
19- const UNION : DummyUnion = DummyUnion { field1 : 5 } ;
20- const FIELD : i32 = unsafe { UNION . field2 } ;
21- FIELD
36+ const fn read_field3 ( ) -> Field3 {
37+ const FIELD3 : Field3 = unsafe { UNION . field3 } ;
38+ FIELD3
2239}
2340
2441fn main ( ) {
25- assert_eq ! ( read_field( ) , 5 ) ;
42+ assert_eq ! ( read_field1( ) , FLOAT1_AS_I32 ) ;
43+ assert_eq ! ( read_field2( ) , 1.0 ) ;
44+ assert_eq ! ( read_field3( ) , unsafe { UNION . field3 } ) ;
2645}
You can’t perform that action at this time.
0 commit comments