//# publish module 0x1.M { struct G has drop { v: u64 } struct S has drop { g: Self.G } t1(root: &mut Self.S, cond: bool) { let v_mut: &mut u64; let g_mut: &mut Self.G; label b0: v_mut = &mut (&mut copy(root).S::g).G::v; g_mut = &mut copy(root).S::g; // INVALID cannot write with v_mut live *move(g_mut) = G { v: 0 }; return; } }