#![allow(unused)] | |
#[derive(Clone, Copy, Default)] | |
struct S { | |
a: u8, | |
b: u8, | |
} | |
#[derive(Clone, Copy, Default)] | |
struct Z { | |
c: u8, | |
d: u8, | |
} | |
union U { | |
s: S, | |
z: Z, | |
} | |
fn main() { | |
unsafe { | |
let mut u = U { s: Default::default() }; | |
let mref = &mut u.s.a; | |
*mref = 22; | |
let nref = &u.z.c; | |
//~^ ERROR cannot borrow `u` (via `u.z.c`) as immutable because it is also borrowed as mutable (via `u.s.a`) [E0502] | |
println!("{} {}", mref, nref) | |
} | |
} |