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);
     }
 }