--- source: tests/utils.rs expression: file_content --- use upgradee::{Struct, Union}; type S = Struct; type U = Union; fn main() { let mut a = Struct { new_s_member: true, }; a.new_s_member = false; s(&a); let b = S { new_s_member: false, }; s(&b); let mut c = Union { new_u_member: true }; c.new_u_member = true; let z = |v: &Union| { let v = unsafe { v.new_u_member }; println!("{}", v); }; z(&c); let d = U { new_u_member: false, }; z(&d); let struct_member = false; let mut e = Struct { new_s_member: struct_member }; let union_member = false; let mut f = Union { new_u_member: union_member }; let Struct { new_s_member: struct_member } = e.clone(); let Struct { new_s_member: g } = e.clone(); let Struct { new_s_member: ref mut struct_member, } = e; unsafe { let Union { new_u_member: union_member } = f.clone(); let Union { new_u_member: h } = f.clone(); let Union { new_u_member: ref mut union_member, } = f; } } fn s(v: &Struct) { let v = v.new_s_member; println!("{}", v); }