1 #![feature(untagged_unions)]
4 #[allow(unions_with_drop_fields)]
6 x: ((Vec<u8>, Vec<u8>), Vec<u8>),
10 fn use_borrow<T>(_: &T) {}
12 unsafe fn parent_sibling_borrow() {
13 let mut u = U { x: ((Vec::new(), Vec::new()), Vec::new()) };
15 let b = &u.y; //~ ERROR cannot borrow `u` (via `u.y`)
19 unsafe fn parent_sibling_move() {
20 let u = U { x: ((Vec::new(), Vec::new()), Vec::new()) };
22 let b = u.y; //~ ERROR use of moved value: `u`
25 unsafe fn grandparent_sibling_borrow() {
26 let mut u = U { x: ((Vec::new(), Vec::new()), Vec::new()) };
27 let a = &mut (u.x.0).0;
28 let b = &u.y; //~ ERROR cannot borrow `u` (via `u.y`)
32 unsafe fn grandparent_sibling_move() {
33 let u = U { x: ((Vec::new(), Vec::new()), Vec::new()) };
35 let b = u.y; //~ ERROR use of moved value: `u`
38 unsafe fn deref_sibling_borrow() {
39 let mut u = U { y: Box::default() };
41 let b = &u.x; //~ ERROR cannot borrow `u` (via `u.x`)
45 unsafe fn deref_sibling_move() {
46 let u = U { x: ((Vec::new(), Vec::new()), Vec::new()) };
48 let b = u.x; //~ ERROR use of moved value: `u`