============ initial translation from Move ================ [variant baseline] fun TestBorrow::test1(): TestBorrow::R { var $t0|r: TestBorrow::R var $t1|r_ref: &mut TestBorrow::R var $t2|x_ref: &mut u64 var $t3: u64 var $t4: TestBorrow::R var $t5: &mut TestBorrow::R var $t6: &mut TestBorrow::R var $t7: &mut u64 var $t8: u64 var $t9: &mut u64 var $t10: TestBorrow::R 0: $t3 := 3 1: $t4 := pack TestBorrow::R($t3) 2: $t0 := $t4 3: $t5 := borrow_local($t0) 4: $t1 := $t5 5: $t6 := move($t1) 6: $t7 := borrow_field.x($t6) 7: $t2 := $t7 8: $t8 := 0 9: $t9 := move($t2) 10: write_ref($t9, $t8) 11: $t10 := move($t0) 12: return $t10 } [variant baseline] fun TestBorrow::test2($t0|x_ref: &mut u64, $t1|v: u64) { var $t2: u64 var $t3: &mut u64 0: $t2 := move($t1) 1: $t3 := move($t0) 2: write_ref($t3, $t2) 3: return () } [variant baseline] public fun TestBorrow::test3($t0|r_ref: &mut TestBorrow::R, $t1|v: u64) { var $t2|x_ref: &mut u64 var $t3: &mut TestBorrow::R var $t4: &mut u64 var $t5: &mut u64 var $t6: u64 0: $t3 := move($t0) 1: $t4 := borrow_field.x($t3) 2: $t2 := $t4 3: $t5 := move($t2) 4: $t6 := move($t1) 5: TestBorrow::test2($t5, $t6) 6: return () } [variant baseline] fun TestBorrow::test4(): TestBorrow::R { var $t0|r: TestBorrow::R var $t1|r_ref: &mut TestBorrow::R var $t2: u64 var $t3: TestBorrow::R var $t4: &mut TestBorrow::R var $t5: &mut TestBorrow::R var $t6: u64 var $t7: TestBorrow::R 0: $t2 := 3 1: $t3 := pack TestBorrow::R($t2) 2: $t0 := $t3 3: $t4 := borrow_local($t0) 4: $t1 := $t4 5: $t5 := move($t1) 6: $t6 := 0 7: TestBorrow::test3($t5, $t6) 8: $t7 := move($t0) 9: return $t7 } [variant baseline] public fun TestBorrow::test5($t0|r_ref: &mut TestBorrow::R): &mut u64 { var $t1: &mut TestBorrow::R var $t2: &mut u64 0: $t1 := move($t0) 1: $t2 := borrow_field.x($t1) 2: return $t2 } [variant baseline] fun TestBorrow::test6(): TestBorrow::R { var $t0|r: TestBorrow::R var $t1|r_ref: &mut TestBorrow::R var $t2|x_ref: &mut u64 var $t3: u64 var $t4: TestBorrow::R var $t5: &mut TestBorrow::R var $t6: &mut TestBorrow::R var $t7: &mut u64 var $t8: &mut u64 var $t9: u64 var $t10: TestBorrow::R 0: $t3 := 3 1: $t4 := pack TestBorrow::R($t3) 2: $t0 := $t4 3: $t5 := borrow_local($t0) 4: $t1 := $t5 5: $t6 := move($t1) 6: $t7 := TestBorrow::test5($t6) 7: $t2 := $t7 8: $t8 := move($t2) 9: $t9 := 0 10: TestBorrow::test2($t8, $t9) 11: $t10 := move($t0) 12: return $t10 } [variant baseline] fun TestBorrow::test7($t0|b: bool) { var $t1|r1: TestBorrow::R var $t2|r2: TestBorrow::R var $t3|r_ref: &mut TestBorrow::R var $t4: u64 var $t5: TestBorrow::R var $t6: u64 var $t7: TestBorrow::R var $t8: &mut TestBorrow::R var $t9: bool var $t10: &mut TestBorrow::R var $t11: &mut TestBorrow::R var $t12: &mut TestBorrow::R var $t13: u64 0: $t4 := 3 1: $t5 := pack TestBorrow::R($t4) 2: $t1 := $t5 3: $t6 := 4 4: $t7 := pack TestBorrow::R($t6) 5: $t2 := $t7 6: $t8 := borrow_local($t1) 7: $t3 := $t8 8: $t9 := move($t0) 9: if ($t9) goto 10 else goto 16 10: label L0 11: $t10 := move($t3) 12: destroy($t10) 13: $t11 := borrow_local($t2) 14: $t3 := $t11 15: goto 16 16: label L2 17: $t12 := move($t3) 18: $t13 := 0 19: TestBorrow::test3($t12, $t13) 20: return () } [variant baseline] fun TestBorrow::test8($t0|b: bool, $t1|n: u64, $t2|r_ref: &mut TestBorrow::R) { var $t3|r1: TestBorrow::R var $t4|r2: TestBorrow::R var $t5|t_ref: &mut TestBorrow::R var $t6: u64 var $t7: TestBorrow::R var $t8: u64 var $t9: TestBorrow::R var $t10: &mut TestBorrow::R var $t11: u64 var $t12: u64 var $t13: bool var $t14: &mut TestBorrow::R var $t15: u64 var $t16: u64 var $t17: u64 var $t18: u64 var $t19: bool var $t20: &mut TestBorrow::R var $t21: &mut TestBorrow::R var $t22: u64 var $t23: u64 var $t24: u64 var $t25: bool var $t26: &mut TestBorrow::R var $t27: &mut TestBorrow::R var $t28: u64 var $t29: &mut TestBorrow::R var $t30: &mut TestBorrow::R var $t31: u64 0: $t6 := 3 1: $t7 := pack TestBorrow::R($t6) 2: $t3 := $t7 3: $t8 := 4 4: $t9 := pack TestBorrow::R($t8) 5: $t4 := $t9 6: $t10 := borrow_local($t4) 7: $t5 := $t10 8: goto 9 9: label L7 10: $t11 := 0 11: $t12 := copy($t1) 12: $t13 := <($t11, $t12) 13: if ($t13) goto 14 else goto 37 14: label L0 15: $t14 := move($t5) 16: destroy($t14) 17: $t15 := copy($t1) 18: $t16 := 2 19: $t17 := /($t15, $t16) 20: $t18 := 0 21: $t19 := ==($t17, $t18) 22: if ($t19) goto 23 else goto 27 23: label L3 24: $t20 := borrow_local($t3) 25: $t5 := $t20 26: goto 31 27: label L5 28: $t21 := borrow_local($t4) 29: $t5 := $t21 30: goto 31 31: label L6 32: $t22 := move($t1) 33: $t23 := 1 34: $t24 := -($t22, $t23) 35: $t1 := $t24 36: goto 9 37: label L2 38: $t25 := move($t0) 39: if ($t25) goto 40 else goto 47 40: label L8 41: $t26 := move($t5) 42: destroy($t26) 43: $t27 := move($t2) 44: $t28 := 0 45: TestBorrow::test3($t27, $t28) 46: goto 54 47: label L10 48: $t29 := move($t2) 49: destroy($t29) 50: $t30 := move($t5) 51: $t31 := 0 52: TestBorrow::test3($t30, $t31) 53: goto 54 54: label L11 55: return () } ============ after pipeline `borrow` ================ [variant baseline] fun TestBorrow::test1(): TestBorrow::R { var $t0|r: TestBorrow::R var $t1|r_ref: &mut TestBorrow::R var $t2|x_ref: &mut u64 var $t3: u64 var $t4: &mut TestBorrow::R var $t5: &mut u64 var $t6: u64 var $t7: TestBorrow::R 0: $t3 := 3 1: $t0 := pack TestBorrow::R($t3) 2: $t4 := borrow_local($t0) # live_nodes: Reference($t4) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))} 3: $t5 := borrow_field.x($t4) # live_nodes: Reference($t5) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 4: $t6 := 0 # live_nodes: Reference($t5) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 5: write_ref($t5, $t6) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 6: $t7 := move($t0) # live_nodes: LocalRoot($t7) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 7: return $t7 } [variant baseline] fun TestBorrow::test2($t0|x_ref: &mut u64, $t1|v: u64) { # live_nodes: LocalRoot($t1), Reference($t0) 0: write_ref($t0, $t1) # live_nodes: LocalRoot($t1), Reference($t0) 1: trace_local[x_ref]($t0) # live_nodes: LocalRoot($t1) 2: return () } [variant baseline] public fun TestBorrow::test3($t0|r_ref: &mut TestBorrow::R, $t1|v: u64) { var $t2|x_ref: &mut u64 var $t3: &mut u64 # live_nodes: LocalRoot($t1), Reference($t0) 0: $t3 := borrow_field.x($t0) # live_nodes: LocalRoot($t1), Reference($t0), Reference($t3) # borrowed_by: Reference($t0) -> {(.x (u64), Reference($t3))} # borrows_from: Reference($t3) -> {(.x (u64), Reference($t0))} 1: TestBorrow::test2($t3, $t1) # live_nodes: LocalRoot($t1), Reference($t0) # borrowed_by: Reference($t0) -> {(.x (u64), Reference($t3))} # borrows_from: Reference($t3) -> {(.x (u64), Reference($t0))} 2: trace_local[r_ref]($t0) # live_nodes: LocalRoot($t1) # borrowed_by: Reference($t0) -> {(.x (u64), Reference($t3))} # borrows_from: Reference($t3) -> {(.x (u64), Reference($t0))} 3: return () } [variant baseline] fun TestBorrow::test4(): TestBorrow::R { var $t0|r: TestBorrow::R var $t1|r_ref: &mut TestBorrow::R var $t2: u64 var $t3: &mut TestBorrow::R var $t4: u64 var $t5: TestBorrow::R 0: $t2 := 3 1: $t0 := pack TestBorrow::R($t2) 2: $t3 := borrow_local($t0) # live_nodes: Reference($t3) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, LocalRoot($t0))} 3: $t4 := 0 # live_nodes: Reference($t3) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, LocalRoot($t0))} 4: TestBorrow::test3($t3, $t4) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, LocalRoot($t0))} 5: $t5 := move($t0) # live_nodes: LocalRoot($t5) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, LocalRoot($t0))} 6: return $t5 } [variant baseline] public fun TestBorrow::test5($t0|r_ref: &mut TestBorrow::R): &mut u64 { var $t1: &mut u64 # live_nodes: Reference($t0) 0: $t1 := borrow_field.x($t0) # live_nodes: Reference($t0), Reference($t1) # borrowed_by: Reference($t0) -> {(.x (u64), Reference($t1))} # borrows_from: Reference($t1) -> {(.x (u64), Reference($t0))} 1: trace_local[r_ref]($t0) # live_nodes: Reference($t1) # borrowed_by: Reference($t0) -> {(.x (u64), Reference($t1))} # borrows_from: Reference($t1) -> {(.x (u64), Reference($t0))} 2: return $t1 } [variant baseline] fun TestBorrow::test6(): TestBorrow::R { var $t0|r: TestBorrow::R var $t1|r_ref: &mut TestBorrow::R var $t2|x_ref: &mut u64 var $t3: u64 var $t4: &mut TestBorrow::R var $t5: &mut u64 var $t6: u64 var $t7: TestBorrow::R 0: $t3 := 3 1: $t0 := pack TestBorrow::R($t3) 2: $t4 := borrow_local($t0) # live_nodes: Reference($t4) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))} 3: $t5 := TestBorrow::test5($t4) # live_nodes: Reference($t5) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 4: $t6 := 0 # live_nodes: Reference($t5) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 5: TestBorrow::test2($t5, $t6) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 6: $t7 := move($t0) # live_nodes: LocalRoot($t7) # borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))} # borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))} 7: return $t7 } [variant baseline] fun TestBorrow::test7($t0|b: bool) { var $t1|r1: TestBorrow::R var $t2|r2: TestBorrow::R var $t3|r_ref: &mut TestBorrow::R var $t4: u64 var $t5: u64 var $t6: &mut TestBorrow::R var $t7: &mut TestBorrow::R var $t8: u64 # live_nodes: LocalRoot($t0) 0: $t4 := 3 # live_nodes: LocalRoot($t0) 1: $t1 := pack TestBorrow::R($t4) # live_nodes: LocalRoot($t0) 2: $t5 := 4 # live_nodes: LocalRoot($t0) 3: $t2 := pack TestBorrow::R($t5) # live_nodes: LocalRoot($t0) 4: $t6 := borrow_local($t1) # live_nodes: LocalRoot($t0), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))} # borrows_from: Reference($t6) -> {(@, LocalRoot($t1))} 5: $t3 := $t6 # live_nodes: LocalRoot($t0), Reference($t3), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 6: if ($t0) goto 15 else goto 18 # live_nodes: LocalRoot($t0), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 7: label L0 # live_nodes: LocalRoot($t0), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 8: destroy($t6) # live_nodes: LocalRoot($t0) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 9: $t7 := borrow_local($t2) # live_nodes: LocalRoot($t0), Reference($t7) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))} 10: $t3 := $t7 # live_nodes: LocalRoot($t0), Reference($t3) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))} 11: label L2 # live_nodes: LocalRoot($t0), Reference($t3) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))} 12: $t8 := 0 # live_nodes: LocalRoot($t0), Reference($t3) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))} 13: TestBorrow::test3($t3, $t8) # live_nodes: LocalRoot($t0) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))} 14: return () # live_nodes: LocalRoot($t0), Reference($t3), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 15: label L3 # live_nodes: LocalRoot($t0), Reference($t3), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 16: destroy($t3) # live_nodes: LocalRoot($t0), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 17: goto 7 # live_nodes: LocalRoot($t0), Reference($t3), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 18: label L4 # live_nodes: LocalRoot($t0), Reference($t3), Reference($t6) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 19: destroy($t6) # live_nodes: LocalRoot($t0), Reference($t3) # borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))} # borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))} 20: goto 11 } [variant baseline] fun TestBorrow::test8($t0|b: bool, $t1|n: u64, $t2|r_ref: &mut TestBorrow::R) { var $t3|r1: TestBorrow::R var $t4|r2: TestBorrow::R var $t5|t_ref: &mut TestBorrow::R var $t6: u64 var $t7: u64 var $t8: &mut TestBorrow::R var $t9: u64 var $t10: bool var $t11: u64 var $t12: u64 var $t13: u64 var $t14: bool var $t15: &mut TestBorrow::R var $t16: &mut TestBorrow::R var $t17: u64 var $t18: u64 var $t19: u64 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) 0: $t6 := 3 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) 1: $t3 := pack TestBorrow::R($t6) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) 2: $t7 := 4 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) 3: $t4 := pack TestBorrow::R($t7) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) 4: $t8 := borrow_local($t4) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t8) # borrowed_by: LocalRoot($t4) -> {(@, Reference($t8))} # borrows_from: Reference($t8) -> {(@, LocalRoot($t4))} 5: $t5 := $t8 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 6: label L7 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 7: $t9 := 0 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 8: $t10 := <($t9, $t1) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 9: if ($t10) goto 10 else goto 28 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 10: label L0 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 11: destroy($t5) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 12: $t11 := 2 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 13: $t12 := /($t1, $t11) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 14: $t13 := 0 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 15: $t14 := ==($t12, $t13) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 16: if ($t14) goto 17 else goto 21 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 17: label L3 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 18: $t15 := borrow_local($t3) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t15) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 19: $t5 := $t15 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 20: goto 24 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 21: label L5 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 22: $t16 := borrow_local($t4) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t16) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 23: $t5 := $t16 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 24: label L6 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 25: $t17 := 1 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 26: $t1 := -($t1, $t17) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 27: goto 6 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 28: label L2 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 29: if ($t0) goto 30 else goto 35 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 30: label L8 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 31: destroy($t5) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 32: $t18 := 0 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 33: TestBorrow::test3($t2, $t18) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 34: goto 39 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 35: label L10 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 36: destroy($t2) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 37: $t19 := 0 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 38: TestBorrow::test3($t5, $t19) # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 39: label L11 # live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 40: trace_local[r_ref]($t2) # live_nodes: LocalRoot($t0), LocalRoot($t1) # borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))} # borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))} 41: return () } ==== borrow analysis summaries ==== fun TestBorrow::test5[baseline] borrowed_by: Reference($t0) -> {(.x (u64), Return(0))} borrows_from: Return(0) -> {(.x (u64), Reference($t0))}