// build-pass (FIXME(62277): could be check-pass?) | |
#![feature(untagged_unions)] | |
struct A; | |
struct B; | |
union U { | |
a: A, | |
b: B, | |
} | |
fn main() { | |
unsafe { | |
{ | |
let mut u = U { a: A }; | |
let a = u.a; | |
u.a = A; | |
let a = u.a; // OK | |
} | |
{ | |
let mut u = U { a: A }; | |
let a = u.a; | |
u.b = B; | |
let a = u.a; // OK | |
} | |
} | |
} |