============ initial translation from Move ================ [variant baseline] public fun Summary::write_addr() { var $t0: address 0: $t0 := 0x777 1: Summary::write_caller2($t0) 2: return () } [variant baseline] public fun Summary::write_callee($t0|s2: &mut Summary::S2) { var $t1: u64 var $t2: &mut Summary::S2 var $t3: &mut u64 0: $t1 := 7 1: $t2 := move($t0) 2: $t3 := borrow_field.f($t2) 3: write_ref($t3, $t1) 4: return () } [variant baseline] public fun Summary::write_caller1($t0|a: address) { var $t1: address var $t2: &mut Summary::S2 0: $t1 := move($t0) 1: $t2 := borrow_global($t1) 2: Summary::write_callee($t2) 3: return () } [variant baseline] public fun Summary::write_caller2($t0|a: address) { var $t1: address var $t2: &mut Summary::S1 var $t3: &mut Summary::S2 0: $t1 := move($t0) 1: $t2 := borrow_global($t1) 2: $t3 := borrow_field.s2($t2) 3: Summary::write_callee($t3) 4: return () } ============ after pipeline `read_write_set` ================ [variant baseline] public fun Summary::write_addr() { var $t0: address # Accesses: # 0x777/0x2::Summary::S1/s2: Read # 0x777/0x2::Summary::S1/s2/f: Write # # Locals: # 0: $t0 := 0x777 1: Summary::write_caller2($t0) 2: return () } [variant baseline] public fun Summary::write_callee($t0|s2: &mut Summary::S2) { var $t1: u64 var $t2: &mut Summary::S2 var $t3: &mut u64 # Accesses: # Formal(0): Read # Formal(0)/f: Write # # Locals: # 0: $t1 := 7 1: $t2 := move($t0) 2: $t3 := borrow_field.f($t2) 3: write_ref($t3, $t1) 4: return () } [variant baseline] public fun Summary::write_caller1($t0|a: address) { var $t1: address var $t2: &mut Summary::S2 # Accesses: # Formal(0): Read # Formal(0)/0x2::Summary::S2: Read # Formal(0)/0x2::Summary::S2/f: Write # # Locals: # 0: $t1 := move($t0) 1: $t2 := borrow_global($t1) 2: Summary::write_callee($t2) 3: return () } [variant baseline] public fun Summary::write_caller2($t0|a: address) { var $t1: address var $t2: &mut Summary::S1 var $t3: &mut Summary::S2 # Accesses: # Formal(0): Read # Formal(0)/0x2::Summary::S1/s2: Read # Formal(0)/0x2::Summary::S1/s2/f: Write # # Locals: # 0: $t1 := move($t0) 1: $t2 := borrow_global($t1) 2: $t3 := borrow_field.s2($t2) 3: Summary::write_callee($t3) 4: return () }