//# publish module 0x1.A { import 0x1.signer; struct T has key {v: u64} public A5(account: &signer, b: bool) acquires T { let u: u64; let t: Self.T; let t1_ref: &mut Self.T; let t2_ref: &mut Self.T; let sender: address; label b0: sender = signer.address_of(move(account)); t = T { v: 0 }; jump_if (move(b)) b2; label b1: t1_ref = &mut t; jump b3; label b2: t1_ref = borrow_global_mut(copy(sender)); label b3: t2_ref = borrow_global_mut(move(sender)); // cannot acquire T, it is still borrowed _ = move(t1_ref); _ = move(t2_ref); T { v: u } = move(t); return; } }