From 9c1ad0ff2fe64c02a91c1daf0ce6670b1eaf75f6 Mon Sep 17 00:00:00 2001 From: Oliver Scherer <github35764891676564198441@oli-obk.de> Date: Fri, 20 Sep 2019 12:22:06 +0200 Subject: [PATCH] Preserve originally intended test semantics --- src/test/ui/union/union-generic-rpass.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/ui/union/union-generic-rpass.rs b/src/test/ui/union/union-generic-rpass.rs index 5ca3bc0f722..eb169c516d2 100644 --- a/src/test/ui/union/union-generic-rpass.rs +++ b/src/test/ui/union/union-generic-rpass.rs @@ -3,8 +3,10 @@ #![feature(untagged_unions)] -union MaybeItem<T: Iterator> where T::Item: Copy { - elem: T::Item, +use std::mem::ManuallyDrop; + +union MaybeItem<T: Iterator> { + elem: ManuallyDrop<T::Item>, none: (), } @@ -25,7 +27,7 @@ fn main() { let v: Vec<u8> = vec![1, 2, 3]; let mut i = v.iter(); i.next(); - let mi = MaybeItem::<std::slice::Iter<_>> { elem: i.next().unwrap() }; - assert_eq!(*mi.elem, 2); + let mi = MaybeItem::<std::slice::Iter<_>> { elem: ManuallyDrop::new(i.next().unwrap()) }; + assert_eq!(**mi.elem, 2); } }