From eb31ae2e140b682e630a93d2382bd06ffc6089a5 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Sun, 3 Jun 2018 19:37:50 +0200 Subject: [PATCH] Deduplicate and fix a test --- src/test/run-pass/ctfe/union-ice.rs | 45 ------------------- .../run-pass/union/union-const-eval-field.rs | 14 ++++-- 2 files changed, 11 insertions(+), 48 deletions(-) delete mode 100644 src/test/run-pass/ctfe/union-ice.rs 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 f83f49f298b90..0000000000000 --- 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 or the MIT license -// , 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 f83f49f298b90..a380b01dcc13f 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); }