//# publish module 0x42.Tester { struct T has drop {v: u64} public new(v: u64): Self.T { label b0: return T{v: move(v)}; } public replace(t: &mut Self.T) { let t_v: &mut u64; let new_t: Self.T; label b0: t_v = &mut copy(t).T::v; new_t = Self.new(1); // cannot mutate, still borrowed *move(t) = move(new_t); *move(t_v) = 10000; return; } }