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