about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/run-pass/ctfe/union-ice.rs45
-rw-r--r--src/test/run-pass/union/union-const-eval-field.rs14
2 files changed, 11 insertions, 48 deletions
diff --git a/src/test/run-pass/ctfe/union-ice.rs b/src/test/run-pass/ctfe/union-ice.rs
deleted file mode 100644
index f83f49f298b..00000000000
--- a/src/test/run-pass/ctfe/union-ice.rs
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(const_fn)]
-
-type Field1 = i32;
-type Field2 = f32;
-type Field3 = i64;
-
-union DummyUnion {
-    field1: Field1,
-    field2: Field2,
-    field3: Field3,
-}
-
-const FLOAT1_AS_I32: i32 = 1065353216;
-const UNION: DummyUnion = DummyUnion { field1: FLOAT1_AS_I32 };
-
-const fn read_field1() -> Field1 {
-    const FIELD1: Field1 = unsafe { UNION.field1 };
-    FIELD1
-}
-
-const fn read_field2() -> Field2 {
-    const FIELD2: Field2 = unsafe { UNION.field2 };
-    FIELD2
-}
-
-const fn read_field3() -> Field3 {
-    const FIELD3: Field3 = unsafe { UNION.field3 };
-    FIELD3
-}
-
-fn main() {
-    assert_eq!(read_field1(), FLOAT1_AS_I32);
-    assert_eq!(read_field2(), 1.0);
-    assert_eq!(read_field3(), unsafe { UNION.field3 });
-}
diff --git a/src/test/run-pass/union/union-const-eval-field.rs b/src/test/run-pass/union/union-const-eval-field.rs
index f83f49f298b..a380b01dcc1 100644
--- a/src/test/run-pass/union/union-const-eval-field.rs
+++ b/src/test/run-pass/union/union-const-eval-field.rs
@@ -10,7 +10,7 @@
 
 #![feature(const_fn)]
 
-type Field1 = i32;
+type Field1 = (i32, u32);
 type Field2 = f32;
 type Field3 = i64;
 
@@ -21,7 +21,7 @@ union DummyUnion {
 }
 
 const FLOAT1_AS_I32: i32 = 1065353216;
-const UNION: DummyUnion = DummyUnion { field1: FLOAT1_AS_I32 };
+const UNION: DummyUnion = DummyUnion { field1: (FLOAT1_AS_I32, 0) };
 
 const fn read_field1() -> Field1 {
     const FIELD1: Field1 = unsafe { UNION.field1 };
@@ -39,7 +39,15 @@ const fn read_field3() -> Field3 {
 }
 
 fn main() {
-    assert_eq!(read_field1(), FLOAT1_AS_I32);
+    let foo = FLOAT1_AS_I32;
+    assert_eq!(read_field1().0, foo);
+    assert_eq!(read_field1().0, FLOAT1_AS_I32);
+
+    let foo = 1.0;
+    assert_eq!(read_field2(), foo);
     assert_eq!(read_field2(), 1.0);
+
     assert_eq!(read_field3(), unsafe { UNION.field3 });
+    let foo = unsafe { UNION.field3 };
+    assert_eq!(read_field3(), foo);
 }