summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/trace_reference.txt14723
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
-}
-
[Debug] test_unit_function: test2
[Debug]
**About to evaluate statement**: [
@@ -109595,6950 +109513,6 @@ move var@9
-[Debug] test_unit_function: id_mut_mut_test2
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] activate_inactivated_mut_borrow: resulting value:
-&mut@0 (0: i32)
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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⌋) ;
-}
-
-[Debug] 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
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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) ;
-}
-
-[Debug] 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) ;
-}
-
-
-[Debug] 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) ;
-}
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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)
-
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2))
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3))
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4))
-[Debug] 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⌋) ;
-}
-
-[Debug] 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⌋) ;
-}
-
-
-[Debug] 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⌋) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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)) ;
-}
-
-[Debug] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 6))
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] test_unit_function: id_mut_mut_test3
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] activate_inactivated_mut_borrow: resulting value:
-&mut@0 (0: i32)
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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⌋) ;
-}
-
-[Debug] 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
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] activate_inactivated_mut_borrow: resulting value:
-&mut@0 (1: i32)
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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⌋) ;
-}
-
-[Debug] 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
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug]
-**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⌋) ;
-}
-
-
-
-[Debug] 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)
-
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2))
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3))
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4))
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 4: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 5))
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 6))
-[Debug] 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⌋) ;
-}
-
-[Debug] end borrow: 6: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 7))
-[Debug] 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⌋) ;
-}
-
-[Debug] 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⌋) ;
-}
-
-
-[Debug] 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⌋) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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)) ;
-}
-
-[Debug] 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)) ;
-}
-
-
-[Debug] 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)) ;
-}
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug]
-**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)) ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)) ;
-}
-
-
-
[Debug] test_function_symbolic: add_test
[Debug]
**About to evaluate statement**: [
@@ -142258,7700 +135232,3 @@ move var@9
-[Debug] test_function_symbolic: id_mut_mut_test2
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] activate_inactivated_mut_borrow: resulting value:
-&mut@0 (0: i32)
-[Debug] 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
-
-[Debug]
-**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)))
- }
-}
-
-
-
-[Debug]
-**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)))
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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 ;
-}
-
-
-[Debug] 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 ;
-}
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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) ;
-}
-
-[Debug] 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) ;
-}
-
-
-[Debug] 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) ;
-}
-
-
-[Debug]
-**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) })
- }
-}
-
-
-
-[Debug]
-**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) })
- }
-}
-
-
-
-[Debug] 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)
-
-[Debug] 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) })
- }
-}
-
-[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2))
-[Debug] 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) })
- }
-}
-
-[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0)
-[Debug] 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) })
- }
-}
-
-[Debug] 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) })
- }
-}
-
-[Debug] 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) })
- }
-}
-
-[Debug] 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) })
- }
-}
-
-
-[Debug] 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) })
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug]
-**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) }}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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) }}
- }
-}
-
-[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1)
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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 ;
-}
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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 ;
-}
-
-[Debug] 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 ;
-}
-
-
-[Debug] 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 ;
-}
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] test_function_symbolic: id_mut_mut_test3
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] activate_inactivated_mut_borrow: resulting value:
-&mut@0 (0: i32)
-[Debug] 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
-
-[Debug]
-**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)))
- }
-}
-
-
-
-[Debug]
-**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)))
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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 ;
-}
-
-
-[Debug] 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 ;
-}
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug] activate_inactivated_mut_borrow: resulting value:
-&mut@4 (1: i32)
-[Debug] 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
-
-[Debug]
-**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)))
- }
-}
-
-
-
-[Debug]
-**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)))
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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 ;
-}
-
-
-[Debug] 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 ;
-}
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug]
-**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)⌋)
- }
-}
-
-
-
-[Debug] 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)
-
-[Debug] 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)⌋)
- }
-}
-
-[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2))
-[Debug] 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)⌋)
- }
-}
-
-[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0)
-[Debug] 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)⌋)
- }
-}
-
-[Debug] 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)⌋)
- }
-}
-
-[Debug] 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)⌋)
- }
-}
-
-[Debug] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 5))
-[Debug] 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)⌋)
- }
-}
-
-[Debug] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 2)
-[Debug] 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)⌋)
- }
-}
-
-[Debug] 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)⌋)
- }
-}
-
-[Debug] 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)⌋)
- }
-}
-
-[Debug] 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)⌋)
- }
-}
-
-
-[Debug] 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)⌋)
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug]
-**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)⌋}
- }
-}
-
-
-
-[Debug] 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
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1)
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] end borrow: 4: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 3)
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-[Debug] end borrow: 7: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 3)
-[Debug] 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)⌋}
- }
-}
-
-[Debug] 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)⌋}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-[Debug] 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) }}
- }
-}
-
-
-[Debug] 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 ;
-}
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug]
-**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 ;
-}
-
-
-
-[Debug] 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
-
-[Debug]
-**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 ;
-}
-
-
-