module 0x8675309::M { struct R has key { f: u64 } fun t0(addr: address) acquires R { R { f: _ } = move_from(addr); R { f: _ } = move_from(addr); } fun t1(addr: address) acquires R { R { f: _ } = move_from(addr); borrow_global_mut(addr); } fun t2(addr: address) acquires R { R { f: _ } = move_from(addr); borrow_global(addr); } fun t3(cond: bool, addr: address) acquires R { let r = R { f: 0 }; R { f: _ } = move_from(addr); let r1; if (cond) r1 = borrow_global_mut(addr) else r1 = &mut r; r1.f = 0; R { f: _ } = r } }