diff options
Diffstat (limited to '')
-rw-r--r-- | tests/trace_reference.txt | 14723 |
1 files changed, 0 insertions, 14723 deletions
diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt index 3e0483f8..acf83e51 100644 --- a/tests/trace_reference.txt +++ b/tests/trace_reference.txt @@ -969,88 +969,6 @@ fn id_mut_mut_test1() { return } -fn id_mut_mut_test2() { - var@0 : (); - x : i32; - px : &'_ mut (i32); - ppx : &'_ mut (&'_ mut (i32)); - ppy : &'_ mut (&'_ mut (i32)); - var@5 : &'_ mut (&'_ mut (i32)); - y : i32; - py : &'_ mut (i32); - var@8 : &'_ mut (i32); - var@9 : bool; - var@10 : bool; - var@11 : i32; - var@12 : bool; - var@13 : bool; - var@14 : i32; - var@15 : bool; - var@16 : bool; - var@17 : i32; - - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -} - -fn id_mut_mut_test3() { - var@0 : (); - x : i32; - px : &'_ mut (i32); - ppx : &'_ mut (&'_ mut (i32)); - ppy : &'_ mut (&'_ mut (i32)); - var@5 : &'_ mut (&'_ mut (i32)); - ppz : &'_ mut (&'_ mut (i32)); - var@7 : &'_ mut (&'_ mut (i32)); - var@8 : bool; - var@9 : bool; - var@10 : i32; - var@11 : bool; - var@12 : bool; - var@13 : i32; - - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -} - [[32mDebug[39m] test_unit_function: test2 [[32mDebug[39m] **About to evaluate statement**: [ @@ -109595,6950 +109513,6 @@ move var@9 -[[32mDebug[39m] test_unit_function: id_mut_mut_test2 -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -0: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: -&mut@0 (0: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (&mut@0 (0: i32)) ; - Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@2 := &mut *(x) -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (&mut@0 (0: i32)) ; - Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@0 := &mut *(var@2); - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@0 := &mut *(var@2) -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] ctx_pop_frame: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (⌊mut@4⌋) ; -} - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -move var@0 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -1: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - y := 2: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 2: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - py := &mut y -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 2: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (2: i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := &mut *(py) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (2: i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> &mut@6 (2: i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(ppy) := move var@8 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> &mut@6 (2: i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> &mut@6 (2: i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -move var@8 - -[[32mDebug[39m] end borrow: 0: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⊥ : &'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> &mut@6 (2: i32) ; - None -> &mut@0 (1: i32) ; -} - -[[32mDebug[39m] give_back: -- bid: 0 -- content: &mut@0 (1: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⊥ : &'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> &mut@6 (2: i32) ; - None -> ⊥ : &'_ mut (i32) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 0 -- value: 1: i32 -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⊥ : &'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> &mut@6 (2: i32) ; - None -> ⊥ : &'_ mut (i32) ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := copy *(px) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -copy *(px) - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -[[32mDebug[39m] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) -[[32mDebug[39m] end borrow: 2: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -[[32mDebug[39m] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3)) -[[32mDebug[39m] end borrow: 3: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -[[32mDebug[39m] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4)) -[[32mDebug[39m] end borrow: 4: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -[[32mDebug[39m] give_back: -- bid: 4 -- content: &mut@4 (&mut@6 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 4 -- value: &mut@6 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -[[32mDebug[39m] end borrow: 3: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (&mut@6 (2: i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 3 -- content: &mut@3 (&mut@6 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 3 -- value: &mut@6 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 2: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (&mut@6 (2: i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 2 -- content: &mut@2 (&mut@6 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 2 -- value: &mut@6 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@6 (2: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 1 -- content: &mut@1 (&mut@6 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 1 -- value: &mut@6 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> 2: i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := move var@11 == 2: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> 2: i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> 2: i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@11 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> true ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := ¬ move var@10 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> true ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> true ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@10 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> false ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@9) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> false ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> false ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@9 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(px) := 3: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -3: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@14 := copy x -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -copy x - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> 1: i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := move var@14 == 1: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> 1: i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> 1: i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@14 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -1: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> true ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := ¬ move var@13 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> true ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> true ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@13 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> false ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@12) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> false ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> false ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@12 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@17 := copy y -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -copy y - -[[32mDebug[39m] end borrow: 5: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 6)) -[[32mDebug[39m] end borrow: 6: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> &mut@6 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 6 -- content: &mut@6 (3: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 6 -- value: 3: i32 -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 5: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (3: i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 5 -- content: &mut@5 (3: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 5 -- value: 3: i32 -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> 3: i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@16 := move var@17 == 3: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> 3: i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> 3: i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@17 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -3: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> true ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@15 := ¬ move var@16 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> true ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> true ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@16 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> false ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@15) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> false ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> false ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@15 - -[[32mDebug[39m] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 1: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 3: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] test_unit_function: id_mut_mut_test3 -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - -- op: -0: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: -&mut@0 (0: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (&mut@0 (0: i32)) ; - Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@2 := &mut *(x) -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (&mut@0 (0: i32)) ; - Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@0 := &mut *(var@2); - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@0 := &mut *(var@2) -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] ctx_pop_frame: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (⌊mut@4⌋) ; -} - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; - Some (x) -> &mut@2 (⌊mut@3⌋) ; - Some (var@2) -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -move var@0 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -1: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@7 := &two-phase *(ppy) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (@shared_loan({5}, &mut@0 (1: i32))) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⌊inactivated_mut@5⌋ ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppz := move id_mut_mut<i32>(move var@7) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (@shared_loan({5}, &mut@0 (1: i32))) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⌊inactivated_mut@5⌋ ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - - -[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: -&mut@0 (1: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> &mut@5 (&mut@0 (1: i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - - -- op: -move var@7 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@5 (&mut@0 (1: i32)) ; - Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@2 := &mut *(x) -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@5 (&mut@0 (1: i32)) ; - Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@0 := &mut *(var@2); - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@5 (⌊mut@6⌋) ; - Some (var@2) -> &mut@6 (&mut@0 (1: i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@0 := &mut *(var@2) -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -# Frame 1: -{ - Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (x) -> &mut@5 (⌊mut@6⌋) ; - Some (var@2) -> &mut@6 (&mut@0 (1: i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@7 (&mut@0 (1: i32)) ; - Some (x) -> &mut@5 (⌊mut@6⌋) ; - Some (var@2) -> &mut@6 (⌊mut@7⌋) ; -} - - - -[[32mDebug[39m] ctx_pop_frame: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@7 (&mut@0 (1: i32)) ; - Some (x) -> &mut@5 (⌊mut@6⌋) ; - Some (var@2) -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; -} - -# Frame 1: -{ - Some (var@0) -> &mut@7 (&mut@0 (1: i32)) ; - Some (x) -> &mut@5 (⌊mut@6⌋) ; - Some (var@2) -> &mut@6 (⌊mut@7⌋) ; -} - - -- op: -move var@0 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (1: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppz)) := 2: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (1: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (1: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := copy *(px) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - -- op: -copy *(px) - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) -[[32mDebug[39m] end borrow: 2: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3)) -[[32mDebug[39m] end borrow: 3: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4)) -[[32mDebug[39m] end borrow: 4: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] end borrow: 4: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 5)) -[[32mDebug[39m] end borrow: 5: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 6)) -[[32mDebug[39m] end borrow: 6: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] end borrow: 6: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 7)) -[[32mDebug[39m] end borrow: 7: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - -[[32mDebug[39m] give_back: -- bid: 7 -- content: &mut@7 (&mut@0 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 7 -- value: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (⌊mut@7⌋) ; -} - - -[[32mDebug[39m] end borrow: 6: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> &mut@6 (&mut@0 (2: i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 6 -- content: &mut@6 (&mut@0 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 6 -- value: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (⌊mut@6⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 5: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@5 (&mut@0 (2: i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 5 -- content: &mut@5 (&mut@0 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 5 -- value: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 4: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@4 (&mut@0 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 4 -- content: &mut@4 (&mut@0 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 4 -- value: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (⌊mut@4⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 3: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> &mut@3 (&mut@0 (2: i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 3 -- content: &mut@3 (&mut@0 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 3 -- value: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (⌊mut@3⌋) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 2: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> &mut@2 (&mut@0 (2: i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 2 -- content: &mut@2 (&mut@0 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 2 -- value: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (2: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 1 -- content: &mut@1 (&mut@0 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 1 -- value: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> 2: i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := move var@10 == 2: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> 2: i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> 2: i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@10 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> true ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := ¬ move var@9 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> true ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> true ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@9 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> false ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@8) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> false ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> false ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@8 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := copy x -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -copy x - -[[32mDebug[39m] end borrow: 0: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (2: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - -[[32mDebug[39m] give_back: -- bid: 0 -- content: &mut@0 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 0 -- value: 2: i32 -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> 2: i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := move var@13 == 2: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> 2: i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> 2: i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@13 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> true ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := ¬ move var@12 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> true ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> true ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@12 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> false ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@11) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> false ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> false ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - -- op: -move var@11 - -[[32mDebug[39m] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 2: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; - None -> ⊥ : &'_ mut (&'_ mut (i32)) ; -} - - - [[32mDebug[39m] test_function_symbolic: add_test [[32mDebug[39m] **About to evaluate statement**: [ @@ -142258,7700 +135232,3 @@ move var@9 -[[32mDebug[39m] test_function_symbolic: id_mut_mut_test2 -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -0: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: -&mut@0 (0: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } -} - - -- op: -1: i32 - -[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) - -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - None -> 1: i32 ; -} - - -- new context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) - } - None -> 1: i32 ; -} - - -[[32mDebug[39m] expand_symbolic_value: s@1 : &r@1 mut (i32) - -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) - } - None -> 1: i32 ; -} - - -- new context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (s@2 : i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - None -> 1: i32 ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - y := 2: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⊥ : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 2: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - py := &mut y -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> 2: i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (2: i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := &mut *(py) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (2: i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> &mut@6 (2: i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(ppy) := move var@8 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> &mut@6 (2: i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> &mut@6 (2: i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - -- op: -move var@8 - -[[32mDebug[39m] end borrow: 4: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⊥ : &'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - None -> &mut@6 (2: i32) ; - None -> &mut@4 (1: i32) ; -} - -[[32mDebug[39m] give_back: -- bid: 4 -- content: &mut@4 (1: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⊥ : &'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - None -> &mut@6 (2: i32) ; - None -> ⊥ : &'_ mut (i32) ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 4 -- value: 1: i32 -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⊥ : &'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - None -> &mut@6 (2: i32) ; - None -> ⊥ : &'_ mut (i32) ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := copy *(px) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - - -- op: -copy *(px) - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - -[[32mDebug[39m] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) -[[32mDebug[39m] end borrow: 2: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - -[[32mDebug[39m] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) -[[32mDebug[39m] end_abstraction: 0 -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - -[[32mDebug[39m] end_abstraction: 0 -- context after parent abstractions ended: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - -[[32mDebug[39m] end borrow: 3: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - -[[32mDebug[39m] give_back: -- bid: 3 -- content: &mut@3 (&mut@6 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 3 -- value: &mut@6 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - - -[[32mDebug[39m] end_abstraction: 0 -- context after loans ended: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)} } - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] give_back_value: -- bid: 2 -- value: s@3 : &r@1 mut (i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - ⊥ : &r@0 mut (&r@1 mut (i32)), - @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)} } - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] end_abstraction: 0 -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) - } -} - - -- new context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (s@3 : &r@1 mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (s@3 : &r@1 mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] give_back: -- bid: 1 -- content: &mut@1 (s@3 : &r@1 mut (i32)) -- context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 1 -- value: s@3 : &r@1 mut (i32) -- context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] expand_symbolic_value: s@3 : &r@1 mut (i32) - -- original context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> s@3 : &r@1 mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- new context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> s@4 : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := move var@11 == 2: i32 -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> s@4 : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> s@4 : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- op: -move var@11 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> s@5 : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := ¬ move var@10 -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> s@5 : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> s@5 : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- op: -move var@10 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> s@6 : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@9) -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> s@6 : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> true ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- op: -move var@9 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(px) := 3: i32 -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (s@4 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- op: -3: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@14 := copy x -] - -**Context**: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- op: -copy x - -[[32mDebug[39m] end borrow: 0: -- original context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1) -[[32mDebug[39m] end_abstraction: 1 -- original context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] end_abstraction: 1 -- context after parent abstractions ended: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] end borrow: 7: -- original context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] give_back: -- bid: 7 -- content: &mut@7 (3: i32) -- context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 7 -- value: 3: i32 -- context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] end_abstraction: 1 -- context after loans ended: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] give_back_value: -- bid: 0 -- value: s@7 : i32 -- context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=⊥ : &r@1 mut (i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 6 -- value: s@8 : i32 -- context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=⊥ : &r@1 mut (i32)), - @ended_ignored_mut_loan{ given_back=⊥ : &r@1 mut (i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] end_abstraction: 1 -- original context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@7 (3: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (⌊mut@6⌋) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} - } -} - - -- new context: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> s@7 : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := move var@14 == 1: i32 -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> s@7 : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> s@7 : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -move var@14 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -1: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> s@9 : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := ¬ move var@13 -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> s@9 : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> s@9 : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -move var@13 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> s@10 : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@12) -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> s@10 : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> true ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -move var@12 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@17 := copy y -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -copy y - -[[32mDebug[39m] end borrow: 5: -- original context: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> &mut@5 (s@8 : i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - -[[32mDebug[39m] give_back: -- bid: 5 -- content: &mut@5 (s@8 : i32) -- context: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -[[32mDebug[39m] give_back_value: -- bid: 5 -- value: s@8 : i32 -- context: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> ⌊mut@5⌋ ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> s@8 : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@16 := move var@17 == 3: i32 -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> s@8 : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> s@8 : i32 ; -} - - -- op: -move var@17 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -3: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> s@11 : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@15 := ¬ move var@16 -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> s@11 : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> s@11 : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -move var@16 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@15); - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> s@12 : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@15) -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> s@12 : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> true ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - -- op: -move var@15 - -[[32mDebug[39m] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@7 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (y) -> s@8 : i32 ; - Some (py) -> ⊥ : &'_ mut (i32) ; - Some (var@8) -> ⊥ : &'_ mut (i32) ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : bool ; - Some (var@11) -> ⊥ : i32 ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : bool ; - Some (var@14) -> ⊥ : i32 ; - Some (var@15) -> ⊥ : bool ; - Some (var@16) -> ⊥ : bool ; - Some (var@17) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] test_function_symbolic: id_mut_mut_test3 -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - x := 0: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⊥ : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - -- op: -0: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - px := &mut x -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> 0: i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppx := &mut px -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@0 (0: i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5); - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppy := move id_mut_mut<i32>(move var@5) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⌊inactivated_mut@2⌋ ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: -&mut@0 (0: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32; - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } -} - - -- op: -1: i32 - -[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) - -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) - } - None -> 1: i32 ; -} - - -- new context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) - } - None -> 1: i32 ; -} - - -[[32mDebug[39m] expand_symbolic_value: s@1 : &r@1 mut (i32) - -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) - } - None -> 1: i32 ; -} - - -- new context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (s@2 : i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - None -> 1: i32 ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@7 := &two-phase *(ppy); - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@7 := &two-phase *(ppy) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppz := move id_mut_mut<i32>(move var@7); - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (@shared_loan({5}, &mut@4 (1: i32))) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⌊inactivated_mut@5⌋ ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - ppz := move id_mut_mut<i32>(move var@7) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (@shared_loan({5}, &mut@4 (1: i32))) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⌊inactivated_mut@5⌋ ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - - -[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: -&mut@4 (1: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> &mut@5 (&mut@4 (1: i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } -} - - -- op: -move var@7 - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppz)) := 2: i32; - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - *(*(ppz)) := 2: i32 -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } -} - - -- op: -2: i32 - -[[32mDebug[39m] expand_symbolic_value: s@3 : &r@2 mut (&r@3 mut (i32)) - -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) - } - None -> 2: i32 ; -} - - -- new context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (s@4 : &r@3 mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, proj_loans (s@4 : &r@3 mut (i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, proj_loans (s@4 : &r@3 mut (i32))) - } - None -> 2: i32 ; -} - - -[[32mDebug[39m] expand_symbolic_value: s@4 : &r@3 mut (i32) - -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (s@4 : &r@3 mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, proj_loans (s@4 : &r@3 mut (i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, proj_loans (s@4 : &r@3 mut (i32))) - } - None -> 2: i32 ; -} - - -- new context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (s@5 : i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } - None -> 2: i32 ; -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := copy *(px); - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@10 := copy *(px) -] - -**Context**: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - - -- op: -copy *(px) - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) -[[32mDebug[39m] end borrow: 2: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) -[[32mDebug[39m] end_abstraction: 0 -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end_abstraction: 0 -- context after parent abstractions ended: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end borrow: 3: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 5)) -[[32mDebug[39m] end borrow: 5: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 2) -[[32mDebug[39m] end_abstraction: 2 -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end_abstraction: 2 -- context after parent abstractions ended: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] end borrow: 6: -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - -[[32mDebug[39m] give_back: -- bid: 6 -- content: &mut@6 (&mut@7 (2: i32)) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 6 -- value: &mut@7 (2: i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - - -[[32mDebug[39m] end_abstraction: 2 -- context after loans ended: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ignored_mut_loan(7, proj_loans (s@5 : i32)) } - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] give_back_value: -- bid: 5 -- value: s@6 : &r@3 mut (i32) -- context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - ⊥ : &r@2 mut (&r@3 mut (i32)), - @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ignored_mut_loan(7, proj_loans (s@5 : i32)) } - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] end_abstraction: 2 -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - - -- new context: -# Ended regions: {2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (s@6 : &r@3 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end borrow: 3: -- original context: -# Ended regions: {2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (s@6 : &r@3 mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] give_back: -- bid: 3 -- content: &mut@3 (s@6 : &r@3 mut (i32)) -- context: -# Ended regions: {2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 3 -- value: s@6 : &r@3 mut (i32) -- context: -# Ended regions: {2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] end_abstraction: 0 -- context after loans ended: -# Ended regions: {2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - @ended_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child=@ignored_mut_loan(4, proj_loans (s@2 : i32)) } - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] give_back_value: -- bid: 2 -- value: s@7 : &r@1 mut (i32) -- context: -# Ended regions: {2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - ⊥ : &r@0 mut (&r@1 mut (i32)), - @ended_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child=@ignored_mut_loan(4, proj_loans (s@2 : i32)) } - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] end_abstraction: 0 -- original context: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (⌊mut@2⌋) ; - Some (ppy) -> &mut@3 (⌊mut@5⌋) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ - } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) - } - abs@2{parents={}}{regions={2}} { - &mut@5 (@ignored_mut_borrow(None, 1: i32)), - ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ - } - abs@3{parents={2}}{regions={3}} { - @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), - @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) - } -} - - -- new context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (s@7 : &r@1 mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end borrow: 1: -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> &mut@1 (s@7 : &r@1 mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] give_back: -- bid: 1 -- content: &mut@1 (s@7 : &r@1 mut (i32)) -- context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 1 -- value: s@7 : &r@1 mut (i32) -- context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⌊mut@1⌋ ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] expand_symbolic_value: s@7 : &r@1 mut (i32) - -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> s@7 : &r@1 mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- new context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := move var@10 == 2: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> s@8 : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@9 := move var@10 == 2: i32 -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> s@8 : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> s@8 : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- op: -move var@10 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := ¬ move var@9; - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> s@9 : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := ¬ move var@9 -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> s@9 : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> s@9 : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- op: -move var@9 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@8); - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> s@10 : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@8) -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> s@10 : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> true ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- op: -move var@8 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := copy x; - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@13 := copy x -] - -**Context**: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- op: -copy x - -[[32mDebug[39m] end borrow: 0: -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1) -[[32mDebug[39m] end_abstraction: 1 -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end_abstraction: 1 -- context after parent abstractions ended: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end borrow: 8: -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] give_back: -- bid: 8 -- content: &mut@8 (s@8 : i32) -- context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] give_back_value: -- bid: 8 -- value: s@8 : i32 -- context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] end borrow: 4: -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end borrow: 4: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 3) -[[32mDebug[39m] end_abstraction: 3 -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end_abstraction: 3 -- context after parent abstractions ended: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end borrow: 7: -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] end borrow: 7: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 3) -[[32mDebug[39m] end borrow: 7: -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - -[[32mDebug[39m] give_back: -- bid: 7 -- content: &mut@7 (2: i32) -- context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=⊥ : &r@3 mut (i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -[[32mDebug[39m] end_abstraction: 3 -- context after loans ended: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=⊥ : &r@3 mut (i32); child: @ended_mut_loan{ given_back=2: i32; child=proj_loans (s@5 : i32) }} - } -} - -[[32mDebug[39m] give_back_value: -- bid: 4 -- value: s@11 : i32 -- context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=⊥ : &r@3 mut (i32)), - @ended_ignored_mut_loan{ given_back=⊥ : &r@3 mut (i32); child: @ended_mut_loan{ given_back=2: i32; child=proj_loans (s@5 : i32) }} - } -} - - -[[32mDebug[39m] end_abstraction: 3 -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- new context: -# Ended regions: {0, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: @ended_mut_loan{ given_back=proj_borrows (s@11 : i32 <: i32); child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] end_abstraction: 1 -- context after loans ended: -# Ended regions: {0, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: @ended_mut_loan{ given_back=proj_borrows (s@11 : i32 <: i32); child=proj_loans (s@2 : i32) }} - } -} - -[[32mDebug[39m] give_back_value: -- bid: 0 -- value: s@12 : i32 -- context: -# Ended regions: {0, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=⊥ : &r@1 mut (i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: @ended_mut_loan{ given_back=proj_borrows (s@11 : i32 <: i32); child=proj_loans (s@2 : i32) }} - } -} - - -[[32mDebug[39m] end_abstraction: 1 -- original context: -# Ended regions: {0, 2} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> ⌊mut@0⌋ ; - Some (px) -> &mut@8 (s@8 : i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), - @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} - } - abs@3{parents={}}{regions={3}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), - @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} - } -} - - -- new context: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := move var@13 == 2: i32; - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> s@12 : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@12 := move var@13 == 2: i32 -] - -**Context**: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> s@12 : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> s@12 : i32 ; -} - - -- op: -move var@13 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - -- op: -2: i32 - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := ¬ move var@12; - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> s@13 : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@11 := ¬ move var@12 -] - -**Context**: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> s@13 : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> s@13 : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - -- op: -move var@12 - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@11); - return -] - -**Context**: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> s@14 : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@11) -] - -**Context**: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> s@14 : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> true ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - -- op: -move var@11 - -[[32mDebug[39m] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {0, 1, 2, 3} -# 1 frame(s) - -# Frame 0: -{ - Some (var@0) -> ⊥ : () ; - Some (x) -> s@12 : i32 ; - Some (px) -> ⊥ : &'_ mut (i32) ; - Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; - Some (var@8) -> ⊥ : bool ; - Some (var@9) -> ⊥ : bool ; - Some (var@10) -> ⊥ : i32 ; - Some (var@11) -> ⊥ : bool ; - Some (var@12) -> ⊥ : bool ; - Some (var@13) -> ⊥ : i32 ; -} - - - |