Skip to content

Commit ed7e4e1

Browse files
committed
Expand union test to include different types
1 parent 75c79bd commit ed7e4e1

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

src/test/run-pass/union/union-const-eval-field.rs

+26-7
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,36 @@
1010

1111
#![feature(const_fn)]
1212

13+
type Field1 = i32;
14+
type Field2 = f32;
15+
type Field3 = i64;
16+
1317
union 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

2441
fn 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
}

0 commit comments

Comments
 (0)