]> git.proxmox.com Git - rustc.git/blame - src/test/ui/borrowck/borrowck-union-move-assign.rs
Update unsuspicious file list
[rustc.git] / src / test / ui / borrowck / borrowck-union-move-assign.rs
CommitLineData
064997fb 1use std::mem::ManuallyDrop;
9e0c209e
SL
2
3// Non-copy
4struct A;
5struct B;
6
7union U {
064997fb
FG
8 a: ManuallyDrop<A>,
9 b: ManuallyDrop<B>,
9e0c209e
SL
10}
11
12fn main() {
13 unsafe {
14 {
064997fb 15 let mut u = U { a: ManuallyDrop::new(A) };
9e0c209e 16 let a = u.a;
48663c56 17 let a = u.a; //~ ERROR use of moved value: `u`
9e0c209e
SL
18 }
19 {
064997fb 20 let mut u = U { a: ManuallyDrop::new(A) };
9e0c209e 21 let a = u.a;
064997fb 22 u.a = ManuallyDrop::new(A);
9e0c209e
SL
23 let a = u.a; // OK
24 }
25 {
064997fb 26 let mut u = U { a: ManuallyDrop::new(A) };
9e0c209e 27 let a = u.a;
064997fb 28 u.b = ManuallyDrop::new(B);
9e0c209e
SL
29 let a = u.a; // OK
30 }
31 }
32}