about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Scherer <github35764891676564198441@oli-obk.de>2019-09-20 12:22:06 +0200
committerOliver Scherer <github35764891676564198441@oli-obk.de>2019-10-11 10:43:54 +0200
commit9c1ad0ff2fe64c02a91c1daf0ce6670b1eaf75f6 (patch)
tree19b676a8fc0bee0a0f3787283bf81f628e23b754
parent50ec10e6059f923204c573b4004612e99aa6cdad (diff)
downloadrust-9c1ad0ff2fe64c02a91c1daf0ce6670b1eaf75f6.tar.gz
rust-9c1ad0ff2fe64c02a91c1daf0ce6670b1eaf75f6.zip
Preserve originally intended test semantics
-rw-r--r--src/test/ui/union/union-generic-rpass.rs10
1 files 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);
     }
 }