diff options
author | Jonathan Protzenko | 2022-01-10 11:17:42 -0800 |
---|---|---|
committer | Jonathan Protzenko | 2022-01-10 11:17:42 -0800 |
commit | 46dd5345b4843734563aaa0a001723f32a34586a (patch) | |
tree | ac0635728895b5fa879feb593fcb61a7732fa6ae /tests | |
parent | c3c1d91a976fdac52830239adb6429f09ea888a8 (diff) | |
parent | f2dd12e889cca6e75b03868a7d31952c8bdfa9c7 (diff) |
Merge remote-tracking branch 'refs/remotes/origin/main'
Diffstat (limited to 'tests')
-rw-r--r-- | tests/trace_reference.txt | 56994 |
1 files changed, 47708 insertions, 9286 deletions
diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt index 767b6cbb..46015011 100644 --- a/tests/trace_reference.txt +++ b/tests/trace_reference.txt @@ -878,6 +878,143 @@ fn test_char() -> char { return } +fn test_loops() { + var@0 : (); + x : u32; + var@2 : bool; + var@3 : bool; + var@4 : u32; + x : u32; + var@6 : bool; + var@7 : bool; + var@8 : u32; + x : u32; + var@10 : bool; + var@11 : bool; + var@12 : u32; + x : u32; + var@14 : bool; + var@15 : bool; + var@16 : u32; + x : u32; + var@18 : bool; + var@19 : bool; + var@20 : u32; + x : u32; + var@22 : bool; + var@23 : bool; + var@24 : u32; + + x := move test_loop1(2: u32); + var@4 := copy x; + var@3 := move var@4 == 2: u32; + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +} + +fn id_mut_mut_test1() { + var@0 : (); + x : i32; + px : &'_ mut (i32); + ppx : &'_ mut (&'_ mut (i32)); + ppy : &'_ mut (&'_ mut (i32)); + var@5 : &'_ mut (&'_ mut (i32)); + var@6 : bool; + var@7 : bool; + var@8 : i32; + var@9 : bool; + var@10 : bool; + var@11 : 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@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + 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 +} + [[32mDebug[39m] test_unit_function: test2 [[32mDebug[39m] **About to evaluate statement**: [ @@ -943,30 +1080,6 @@ fn test_char() -> char { -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -23: u32 - [[32mDebug[39m] **About to evaluate statement**: [ y := 44: u32; @@ -1030,30 +1143,6 @@ fn test_char() -> char { -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -44: u32 - [[32mDebug[39m] **About to evaluate statement**: [ z := 67: u32; @@ -1116,30 +1205,6 @@ fn test_char() -> char { -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -67: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@5 := copy x; @@ -1201,32 +1266,6 @@ fn test_char() -> char { -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -23: u32 [[32mDebug[39m] **About to evaluate statement**: [ (p).x := move var@5; @@ -1287,32 +1326,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> 23: u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -23: u32 [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (0, None)), 0)) ty: (Types.Adt ((Types.AdtId 0), [], @@ -1376,30 +1389,6 @@ ty: (Types.Adt ((Types.AdtId 0), [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -67: u32 - [[32mDebug[39m] **About to evaluate statement**: [ (s as test1::Sum::Right).0 := true; @@ -1458,30 +1447,6 @@ ty: (Types.Adt ((Types.AdtId 0), [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> test1::Pair { x = 23: u32; y = 67: u32; } ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -true - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (6, (Some 1))), 0)) ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) @@ -1598,30 +1563,6 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> test1::Pair { x = 23: u32; y = 67: u32; } ; - var@5 -> ⊥ : u32 ; - s -> test1::Sum::Right { 0 = true; } ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -3: u64 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (2, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) @@ -1873,52 +1814,6 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -4: u32 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -3: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@4 := copy x; @@ -1998,41 +1893,6 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -4: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := copy y; @@ -2111,41 +1971,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 4: u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -3: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@3 := move var@4 >= move var@5; @@ -2223,76 +2048,6 @@ copy y -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 4: u32 ; - var@5 -> 3: u32 ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -4: u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> 3: u32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -3: u32 [[32mDebug[39m] **About to evaluate statement**: [ if (move var@3) { @@ -2374,41 +2129,6 @@ move var@5 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> true ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@0 := copy x @@ -2444,41 +2164,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -4: u32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -2576,41 +2261,6 @@ copy x var@5 -> ⊥ : u32 ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> 4: u32 ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -move var@0 - -[[32mDebug[39m] Value to move: -4: u32 [[32mDebug[39m] **About to evaluate statement**: [ y := move get_max(10: u32, 11: u32); @@ -2669,52 +2319,6 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -10: u32 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -11: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@4 := copy x; @@ -2794,41 +2398,6 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -10: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := copy y; @@ -2907,41 +2476,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 10: u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -11: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@3 := move var@4 >= move var@5; @@ -3019,76 +2553,6 @@ copy y -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 10: u32 ; - var@5 -> 11: u32 ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -10: u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> 11: u32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -11: u32 [[32mDebug[39m] **About to evaluate statement**: [ if (move var@3) { @@ -3170,41 +2634,6 @@ move var@5 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> false ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@0 := copy y @@ -3240,41 +2669,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -11: u32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -3372,41 +2766,6 @@ copy y var@5 -> ⊥ : u32 ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - -# Frame 1: -{ - var@0 -> 11: u32 ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -move var@0 - -[[32mDebug[39m] Value to move: -11: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@4 := copy x; @@ -3464,31 +2823,6 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -4: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := copy y; @@ -3545,31 +2879,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> ⊥ : u32 ; - var@4 -> 4: u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -11: u32 [[32mDebug[39m] **About to evaluate statement**: [ z := copy var@4 + copy var@5; @@ -3625,56 +2934,6 @@ copy y -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> ⊥ : u32 ; - var@4 -> 4: u32 ; - var@5 -> 11: u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy var@4 - -[[32mDebug[39m] Value to copy: -4: u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> ⊥ : u32 ; - var@4 -> 4: u32 ; - var@5 -> 11: u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy var@5 - -[[32mDebug[39m] Value to copy: -11: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@9 := copy z; @@ -3729,31 +2988,6 @@ copy var@5 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> 15: u32 ; - var@4 -> 4: u32 ; - var@5 -> 11: u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy z - -[[32mDebug[39m] Value to copy: -15: u32 [[32mDebug[39m] **About to evaluate statement**: [ var@8 := move var@9 == 15: u32; @@ -3807,54 +3041,6 @@ copy z -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> 15: u32 ; - var@4 -> 4: u32 ; - var@5 -> 11: u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> 15: u32 ; -} - - -- op: -move var@9 - -[[32mDebug[39m] Value to move: -15: u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> 15: u32 ; - var@4 -> 4: u32 ; - var@5 -> 11: u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -15: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := ¬ move var@8; @@ -3907,31 +3093,6 @@ move var@9 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> 15: u32 ; - var@4 -> 4: u32 ; - var@5 -> 11: u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> true ; - var@9 -> ⊥ : u32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@7); @@ -3983,31 +3144,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 4: u32 ; - y -> 11: u32 ; - z -> 15: u32 ; - var@4 -> 4: u32 ; - var@5 -> 11: u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> false ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ return @@ -4072,22 +3208,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; -} - - -- op: -3: i32 - [[32mDebug[39m] **About to evaluate statement**: [ y := -3: i32; @@ -4125,22 +3245,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> ⊥ : i32 ; -} - - -- op: --3: i32 - [[32mDebug[39m] **About to evaluate statement**: [ return @@ -4212,26 +3316,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &mut x; @@ -4382,26 +3466,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⌊mut@1⌋ ; - ppx -> &mut@1 (&mut@0 (0: i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@6 := copy x; @@ -4450,28 +3514,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⌊mut@1⌋ ; - ppx -> &mut@1 (&mut@0 (1: i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := move var@6 == 1: i32; @@ -4519,48 +3561,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> 1: i32 ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -1: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@4 := ¬ move var@5; @@ -4607,28 +3607,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> true ; - var@6 -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@4); @@ -4674,28 +3652,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> false ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ return @@ -4811,38 +3767,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ y := 1: i32; @@ -4934,38 +3858,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &mut x; @@ -5406,40 +4298,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> &mut@2 (&mut@0 (0: i32)) ; - var@6 -> &mut@3 (1: i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -&mut@3 (1: i32) [[32mDebug[39m] **About to evaluate statement**: [ *(*(ppx)) := 2: i32; @@ -5525,38 +4383,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> &mut@2 (&mut@3 (1: i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@9 := copy *(px); @@ -5641,40 +4467,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> &mut@2 (&mut@3 (2: i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy *(px) - -[[32mDebug[39m] Value to copy: -2: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@8 := move var@9 == 2: i32; @@ -5758,72 +4550,6 @@ copy *(px) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> 2: i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@9 - -[[32mDebug[39m] Value to move: -2: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := ¬ move var@8; @@ -5906,40 +4632,6 @@ move var@9 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> true ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@7); @@ -6021,40 +4713,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> false ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@12 := copy x; @@ -6135,40 +4793,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@11 := move var@12 == 0: i32; @@ -6248,72 +4872,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> 0: i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@12 - -[[32mDebug[39m] Value to move: -0: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@10 := ¬ move var@11; @@ -6392,40 +4950,6 @@ move var@12 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> true ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@11 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@10); @@ -6503,40 +5027,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> false ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@10 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@15 := copy *(py); @@ -6613,40 +5103,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy *(py) - -[[32mDebug[39m] Value to copy: -2: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@14 := move var@15 == 2: i32; @@ -6722,72 +5178,6 @@ copy *(py) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> 2: i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@15 - -[[32mDebug[39m] Value to move: -2: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@13 := ¬ move var@14; @@ -6862,40 +5252,6 @@ move var@15 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> true ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@14 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@13); @@ -6969,40 +5325,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> false ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@13 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@18 := copy y; @@ -7075,40 +5397,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -2: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@17 := move var@18 == 2: i32; @@ -7180,72 +5468,6 @@ copy y -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> 2: i32 ; -} - - -- op: -move var@18 - -[[32mDebug[39m] Value to move: -2: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@16 := ¬ move var@17; @@ -7316,40 +5538,6 @@ move var@18 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> true ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@17 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@16); @@ -7419,40 +5607,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> false ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@16 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ return @@ -7580,50 +5734,6 @@ false - type_params: [test1::List<i32>] - args: [move var@3] - dest: var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> test1::List::Nil ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; -} - -# Frame 1: -{ - @return -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@1 -> test1::List::Nil ; -} - - -- op: -move var@1 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] ctx_pop_frame: # Ended regions: {} # 2 frame(s) @@ -7662,31 +5772,6 @@ test1::List::Nil var@1 -> ⊥ : test1::List<i32> ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; -} - -# Frame 1: -{ - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List<i32> ; -} - - -- op: -move @return - -[[32mDebug[39m] Value to move: -@Box(test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -7729,23 +5814,6 @@ move @return -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List<i32> ; -} - - -- op: -0: i32 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -7790,25 +5858,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List<i32> ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -@Box(test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -7973,58 +6022,6 @@ move var@2 - type_params: [i32] - args: [0: i32] - dest: b -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box<i32> ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -0: i32 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box<i32> ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> ⊥ : std::boxed::Box<i32> ; - var@1 -> 0: i32 ; -} - - -- op: -move var@1 - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] ctx_pop_frame: # Ended regions: {} # 2 frame(s) @@ -8073,36 +6070,6 @@ move var@1 var@1 -> ⊥ : i32 ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box<i32> ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> @Box(0: i32) ; - var@1 -> ⊥ : i32 ; -} - - -- op: -move @return - -[[32mDebug[39m] Value to move: -@Box(0: i32) [[32mDebug[39m] **About to evaluate statement**: [ var@3 := &two-phase b; @@ -8223,28 +6190,6 @@ move @return - type_params: [i32] - args: [move var@3] - dest: x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({0}, @Box(0: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⌊inactivated_mut@0⌋ ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@3 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Adt @@ -8258,8 +6203,6 @@ move var@3 }); ty = (Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) } -[[32mDebug[39m] Value to move: -&mut@0 (@Box(0: i32)) [[32mDebug[39m] ctx_pop_frame: # Ended regions: {} # 2 frame(s) @@ -8308,36 +6251,6 @@ move var@3 var@1 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> &mut@1 (0: i32) ; - var@1 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; -} - - -- op: -move @return - -[[32mDebug[39m] Value to move: -&mut@1 (0: i32) [[32mDebug[39m] **About to evaluate statement**: [ *(x) := 1: i32; @@ -8394,28 +6307,6 @@ move @return -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> &mut@1 (0: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@5 := &b; @@ -8530,30 +6421,6 @@ move @return - type_params: [i32] - args: [move var@5] - dest: x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, @Box(1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⌊shared@2⌋ ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -⌊shared@2⌋ [[32mDebug[39m] ctx_pop_frame: # Ended regions: {} # 2 frame(s) @@ -8602,36 +6469,6 @@ move var@5 var@1 -> ⊥ : &'_ (std::boxed::Box<i32>) ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> ⌊shared@3⌋ ; - var@1 -> ⊥ : &'_ (std::boxed::Box<i32>) ; -} - - -- op: -move @return - -[[32mDebug[39m] Value to move: -⌊shared@3⌋ [[32mDebug[39m] **About to evaluate statement**: [ var@8 := copy *(x); @@ -8685,30 +6522,6 @@ move @return -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -copy *(x) - -[[32mDebug[39m] Value to copy: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@7 := move var@8 == 1: i32; @@ -8761,52 +6574,6 @@ copy *(x) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> 1: i32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -1: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@6 := ¬ move var@7; @@ -8858,30 +6625,6 @@ move var@8 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> true ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@6); @@ -8932,30 +6675,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> false ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ drop(b); @@ -9088,28 +6807,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - px -> ⊥ : &'_ (i32) ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &x; @@ -9221,30 +6918,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -@shared_loan({0}, 0: i32) [[32mDebug[39m] **About to evaluate statement**: [ y := move copy_int(move var@4); @@ -9299,30 +6972,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> ⊥ : i32 ; - var@4 -> 0: i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@0 := copy x; @@ -9384,36 +7033,6 @@ move var@4 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : i32 ; - x -> 0: i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -9492,36 +7111,6 @@ copy x x -> ⊥ : i32 ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> 0: i32 ; - x -> ⊥ : i32 ; -} - - -- op: -move var@0 - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@7 := copy *(px); @@ -9575,30 +7164,6 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> 0: i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -copy *(px) - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@8 := copy y; @@ -9651,30 +7216,6 @@ copy *(px) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> 0: i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> 0: i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@6 := move var@7 == move var@8; @@ -9726,54 +7267,6 @@ copy y -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> 0: i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> 0: i32 ; - var@8 -> 0: i32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -0: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> 0: i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> 0: i32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := ¬ move var@6; @@ -9824,30 +7317,6 @@ move var@8 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> 0: i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> true ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@5); @@ -9897,30 +7366,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> 0: i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> false ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ return @@ -10064,58 +7509,6 @@ false - type_params: [test1::List<i32>] - args: [move var@3] - dest: var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> test1::List::Nil ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - -# Frame 1: -{ - @return -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@1 -> test1::List::Nil ; -} - - -- op: -move var@1 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] ctx_pop_frame: # Ended regions: {} # 2 frame(s) @@ -10162,35 +7555,6 @@ test1::List::Nil var@1 -> ⊥ : test1::List<i32> ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - -# Frame 1: -{ - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List<i32> ; -} - - -- op: -move @return - -[[32mDebug[39m] Value to move: -@Box(test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -10246,27 +7610,6 @@ move @return -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - - -- op: -0: i32 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -10324,29 +7667,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -@Box(test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -10503,29 +7823,6 @@ move var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; -} - - -- op: -copy var@7 - -[[32mDebug[39m] Value to copy: -⌊shared@0⌋ [[32mDebug[39m] **About to evaluate statement**: [ var@5 := move is_cons<i32>(move var@6); @@ -10576,29 +7873,6 @@ copy var@7 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⌊shared@1⌋ ; - var@7 -> ⌊shared@0⌋ ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -⌊shared@1⌋ [[32mDebug[39m] **About to evaluate statement**: [ var@2 := discriminant(*(l)); @@ -10752,36 +8026,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; -} - -# Frame 1: -{ - var@0 -> ⊥ : bool ; - l -> ⌊shared@1⌋ ; - var@2 -> 0: isize ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -0: isize [[32mDebug[39m] **About to evaluate statement**: [ var@0 := true @@ -10812,34 +8056,6 @@ move var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; -} - -# Frame 1: -{ - var@0 -> ⊥ : bool ; - l -> ⌊shared@1⌋ ; - var@2 -> ⊥ : isize ; -} - - -- op: -true - [[32mDebug[39m] **About to evaluate statement**: [ return @@ -10919,36 +8135,6 @@ true var@2 -> ⊥ : isize ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; -} - -# Frame 1: -{ - var@0 -> true ; - l -> ⊥ : &'_ (test1::List<i32>) ; - var@2 -> ⊥ : isize ; -} - - -- op: -move var@0 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@4 := ¬ move var@5; @@ -10998,29 +8184,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> true ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@4); @@ -11069,29 +8232,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> false ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ drop(l); @@ -11300,64 +8440,6 @@ false - type_params: [test1::List<i32>] - args: [move var@3] - dest: var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> test1::List::Nil ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@1 -> test1::List::Nil ; -} - - -- op: -move var@1 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] ctx_pop_frame: # Ended regions: {} # 2 frame(s) @@ -11410,38 +8492,6 @@ test1::List::Nil var@1 -> ⊥ : test1::List<i32> ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List<i32> ; -} - - -- op: -move @return - -[[32mDebug[39m] Value to move: -@Box(test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -11506,30 +8556,6 @@ move @return -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -11596,32 +8622,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -@Box(test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -11745,32 +8745,6 @@ move var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move l - -[[32mDebug[39m] Value to move: -test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } [[32mDebug[39m] **About to evaluate statement**: [ var@6 := move split_list<i32>(move var@7); @@ -11831,32 +8805,6 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } [[32mDebug[39m] **About to evaluate statement**: [ var@8 := false; @@ -11960,45 +8908,6 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := false; @@ -12101,45 +9010,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> ⊥ : bool ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := true; @@ -12241,45 +9111,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -true - [[32mDebug[39m] **About to evaluate statement**: [ var@8 := true; @@ -12380,45 +9211,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -true - [[32mDebug[39m] **About to evaluate statement**: [ var@2 := discriminant(l); @@ -12575,47 +9367,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> 0: isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -0: isize [[32mDebug[39m] **About to evaluate statement**: [ var@8 := false; @@ -12707,45 +9458,6 @@ move var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ hd := move (l as test1::List::Cons).0; @@ -12836,47 +9548,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move (l as test1::List::Cons).0 - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@7 := false; @@ -12966,45 +9637,6 @@ move (l as test1::List::Cons).0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ tl := move (l as test1::List::Cons).1; @@ -13093,47 +9725,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move (l as test1::List::Cons).1 - -[[32mDebug[39m] Value to move: -@Box(test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ var@5 := move hd; @@ -13221,47 +9812,6 @@ move (l as test1::List::Cons).1 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> @Box(test1::List::Nil) ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move hd - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@6 := move deref_box(tl); @@ -13348,47 +9898,6 @@ move hd -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(test1::List::Nil) ; - var@5 -> 0: i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move deref_box(tl) - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] **About to evaluate statement**: [ (var@0).0 := move var@5; @@ -13474,47 +9983,6 @@ test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : (i32, test1::List<i32>) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List<i32>) ; - var@5 -> 0: i32 ; - var@6 -> test1::List::Nil ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) ty: (Types.Adt (Types.Tuple, [], @@ -13605,47 +10073,6 @@ ty: (Types.Adt (Types.Tuple, [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> (0: i32, ⊥ : test1::List<i32>) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List<i32>) ; - var@5 -> ⊥ : i32 ; - var@6 -> test1::List::Nil ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] **About to evaluate statement**: [ var@9 := move alloc::alloc::box_free<test1::List<i32>>(move tl); @@ -13855,47 +10282,6 @@ test1::List::Nil var@10 -> ⊥ : isize ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> (0: i32, test1::List::Nil) ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List<i32> ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move var@0 - -[[32mDebug[39m] Value to move: -(0: i32, test1::List::Nil) [[32mDebug[39m] **About to evaluate statement**: [ hd := copy (var@6).0; @@ -13955,32 +10341,6 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> (0: i32, test1::List::Nil) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -copy (var@6).0 - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ tl := move (var@6).1; @@ -14039,32 +10399,6 @@ copy (var@6).0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> 0: i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> (0: i32, test1::List::Nil) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move (var@6).1 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] **About to evaluate statement**: [ var@10 := copy hd; @@ -14122,32 +10456,6 @@ test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -copy hd - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@9 := move var@10 == 0: i32; @@ -14204,56 +10512,6 @@ copy hd -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> 0: i32 ; -} - - -- op: -move var@10 - -[[32mDebug[39m] Value to move: -0: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@8 := ¬ move var@9; @@ -14309,32 +10567,6 @@ move var@10 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> true ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@9 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@8); @@ -14389,32 +10621,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> false ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ drop(tl); @@ -14585,38 +10791,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ y := 0: i32; @@ -14705,38 +10879,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⊥ : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@5 := &mut x; @@ -15162,114 +11304,14 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; - var@6 -> ⌊inactivated_mut@3⌋ ; - var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -true - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; - var@6 -> ⌊inactivated_mut@3⌋ ; - var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@4 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); ty = (Types.Integer Types.I32) } -[[32mDebug[39m] Value to move: -&mut@1 (0: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⌊inactivated_mut@3⌋ ; - var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@6 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); ty = (Types.Integer Types.I32) } -[[32mDebug[39m] Value to move: -&mut@3 (0: i32) [[32mDebug[39m] **About to evaluate statement**: [ var@4 := copy b; @@ -15363,49 +11405,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : &'_ mut (i32) ; - b -> true ; - x -> &mut@1 (0: i32) ; - y -> &mut@3 (0: i32) ; - var@4 -> ⊥ : bool ; -} - - -- op: -copy b - -[[32mDebug[39m] Value to copy: -true [[32mDebug[39m] **About to evaluate statement**: [ if (move var@4) { @@ -15503,49 +11502,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> ⊥ : &'_ mut (i32) ; - b -> true ; - x -> &mut@1 (0: i32) ; - y -> &mut@3 (0: i32) ; - var@4 -> true ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@0 := &mut *(x) @@ -15709,49 +11665,6 @@ true var@4 -> ⊥ : bool ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> &mut@4 (0: i32) ; - b -> ⊥ : bool ; - x -> ⊥ : &'_ mut (i32) ; - y -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : bool ; -} - - -- op: -move var@0 - -[[32mDebug[39m] Value to move: -&mut@4 (0: i32) [[32mDebug[39m] **About to evaluate statement**: [ var@8 := copy *(z); @@ -15834,40 +11747,6 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (0: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy *(z) - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ *(z) := copy var@8 + 1: i32; @@ -15949,72 +11828,6 @@ copy *(z) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (0: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy var@8 - -[[32mDebug[39m] Value to copy: -0: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (0: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@12 := copy *(z); @@ -16095,40 +11908,6 @@ copy var@8 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy *(z) - -[[32mDebug[39m] Value to copy: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@11 := move var@12 == 1: i32; @@ -16208,72 +11987,6 @@ copy *(z) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> 1: i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@12 - -[[32mDebug[39m] Value to move: -1: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@10 := ¬ move var@11; @@ -16352,40 +12065,6 @@ move var@12 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> true ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@11 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@10); @@ -16463,40 +12142,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> false ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@10 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@15 := copy x; @@ -16573,40 +12218,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@14 := move var@15 == 1: i32; @@ -16682,72 +12293,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> 1: i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@15 - -[[32mDebug[39m] Value to move: -1: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@13 := ¬ move var@14; @@ -16822,40 +12367,6 @@ move var@15 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> true ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@14 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@13); @@ -16929,40 +12440,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> false ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@13 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@18 := copy y; @@ -17035,40 +12512,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@17 := move var@18 == 0: i32; @@ -17140,72 +12583,6 @@ copy y -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> 0: i32 ; -} - - -- op: -move var@18 - -[[32mDebug[39m] Value to move: -0: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@16 := ¬ move var@17; @@ -17276,40 +12653,6 @@ move var@18 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> true ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@17 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@16); @@ -17379,40 +12722,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> false ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@16 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ return @@ -17513,30 +12822,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⊥ : (&'_ mut (u32), u32) ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -0: u32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &mut x; @@ -17664,32 +12949,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> &mut@0 (0: u32) ; - p -> ⊥ : (&'_ mut (u32), u32) ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -move px - -[[32mDebug[39m] Value to move: -&mut@0 (0: u32) [[32mDebug[39m] **About to evaluate statement**: [ (p).0 := move var@4; @@ -17752,32 +13011,6 @@ move px -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⊥ : (&'_ mut (u32), u32) ; - var@4 -> &mut@0 (0: u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -&mut@0 (0: u32) [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) ty: (Types.Adt (Types.Tuple, [], @@ -17845,30 +13078,6 @@ ty: (Types.Adt (Types.Tuple, [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> (&mut@0 (0: u32), ⊥ : u32) ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -1: u32 - [[32mDebug[39m] **About to evaluate statement**: [ pp0 := &mut p; @@ -18046,30 +13255,6 @@ ty: (Types.Adt (Types.Tuple, [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⌊inactivated_mut@2⌋ ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -move var@7 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Adt @@ -18097,8 +13282,6 @@ move var@7 (Types.Integer Types.U32)] )) } -[[32mDebug[39m] Value to move: -&mut@2 ((&mut@0 (0: u32), 1: u32)) [[32mDebug[39m] **About to evaluate statement**: [ var@2 := &mut *(x); @@ -18322,39 +13505,6 @@ move var@7 var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - -# Frame 1: -{ - var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - x -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; -} - - -- op: -move var@0 - -[[32mDebug[39m] Value to move: -&mut@4 ((&mut@0 (0: u32), 1: u32)) [[32mDebug[39m] **About to evaluate statement**: [ y := 2: u32; @@ -18412,30 +13562,6 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -2: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@10 := &mut y; @@ -18601,36 +13727,36 @@ move var@0 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32; + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; + x -> 0: u32 ; px -> ⊥ : &'_ mut (u32) ; p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + pp1 -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@5⌋ ; - var@9 -> &mut@6 (2: u32) ; + var@9 -> ⊥ : &'_ mut (u32) ; var@10 -> &mut@5 (⌊mut@6⌋) ; } -- op: -move var@9 -[[32mDebug[39m] Value to move: -&mut@6 (2: u32) [[32mDebug[39m] **About to evaluate statement**: [ - *((pp1).1) := 3: u32; - return + *((pp1).1) := 3: u32 ] **Context**: @@ -18656,7 +13782,7 @@ move var@9 [[32mDebug[39m] **About to evaluate statement**: [ - *((pp1).1) := 3: u32 + return ] **Context**: @@ -18671,7 +13797,7 @@ move var@9 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ; + pp1 -> &mut@4 ((&mut@6 (2: u32), 3: u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@5⌋ ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -18680,32 +13806,2920 @@ move var@9 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] test_unit_function: test_char +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := a; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : char ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := a +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : char ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> a ; +} + + + +[[32mDebug[39m] test_unit_function: test_loops +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop1(2: u32); + var@4 := copy x; + var@3 := move var@4 == 2: u32; + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> 0: u32 ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⌊mut@5⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@5 (⌊mut@6⌋) ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop1(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32; + s := 0: u32; + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + s := copy s * 2: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32; + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + s := copy s * 2: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + s := copy s * 2: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> 2: u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> 2: u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; } -- op: -3: u32 [[32mDebug[39m] **About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> 2: u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> 2: u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> false ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s * 2: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s * 2: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [9,8,7,6,5,4,3,2,1] +[[32mDebug[39m] drop_value: place: var@9 +[[32mDebug[39m] drop_value: place: var@8 +[[32mDebug[39m] drop_value: place: var@7 +[[32mDebug[39m] drop_value: place: var@6 +[[32mDebug[39m] drop_value: place: var@5 +[[32mDebug[39m] drop_value: place: var@4 +[[32mDebug[39m] drop_value: place: var@3 +[[32mDebug[39m] drop_value: place: i +[[32mDebug[39m] drop_value: place: max +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> ⊥ : u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : (u32, bool) ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy x; + var@3 := move var@4 == 2: u32; + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -18716,24 +16730,104 @@ move var@9 # Frame 0: { var@0 -> ⊥ : () ; - x -> 0: u32 ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> &mut@4 ((&mut@6 (2: u32), 3: u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⌊mut@5⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@5 (⌊mut@6⌋) ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -[[32mDebug[39m] test_unit_function: test_char [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := a; + var@4 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 == 2: u32; + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -18743,14 +16837,38 @@ move var@9 # Frame 0: { - var@0 -> ⊥ : char ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := a + var@3 := move var@4 == 2: u32 ] **Context**: @@ -18759,27 +16877,170 @@ move var@9 # Frame 0: { - var@0 -> ⊥ : char ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : char ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -- op: -a [[32mDebug[39m] **About to evaluate statement**: [ + var@2 := ¬ move var@3 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -18789,17 +17050,102 @@ a # Frame 0: { - var@0 -> a ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> false ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -[[32mDebug[39m] test_function_symbolic: add_test [[32mDebug[39m] **About to evaluate statement**: [ - var@3 := copy x; - var@4 := copy y; - var@0 := copy var@3 + copy var@4; + assert(¬move var@2) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> false ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -18809,19 +17155,38 @@ a # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } [[32mDebug[39m] **About to evaluate statement**: [ - var@3 := copy x + x := move test_loop2(2: u32) ] **Context**: @@ -18830,41 +17195,3268 @@ a # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32; + s := 0: u32; + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32; + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 0: u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@7 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> 1: u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@7 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@6 := copy i; + switch (move var@6) { + 17: u32 => { + break 0 + } + _ => { + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; + continue 0 + } + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> false ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> 1: u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [9,8,7,6,5,4,3,2,1] +[[32mDebug[39m] drop_value: place: var@9 +[[32mDebug[39m] drop_value: place: var@8 +[[32mDebug[39m] drop_value: place: var@7 +[[32mDebug[39m] drop_value: place: var@6 +[[32mDebug[39m] drop_value: place: var@5 +[[32mDebug[39m] drop_value: place: var@4 +[[32mDebug[39m] drop_value: place: var@3 +[[32mDebug[39m] drop_value: place: i +[[32mDebug[39m] drop_value: place: max +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> ⊥ : u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : (u32, bool) ; + var@9 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -- op: -copy x -[[32mDebug[39m] Value to copy: -s@0 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := copy y; - var@0 := copy var@3 + copy var@4; + var@8 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -18874,19 +20466,38 @@ s@0 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := copy y + var@7 := move var@8 == 1: u32 ] **Context**: @@ -18895,40 +20506,160 @@ s@0 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -- op: -copy y -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := copy var@3 + copy var@4; + var@6 := ¬ move var@7 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -18938,19 +20669,38 @@ s@1 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; - var@5 -> ⊥ : (u32, bool) ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> false ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := copy var@3 + copy var@4 + assert(¬move var@6) ] **Context**: @@ -18959,58 +20709,14960 @@ s@1 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; - var@5 -> ⊥ : (u32, bool) ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> false ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; - var@5 -> ⊥ : (u32, bool) ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -- op: -copy var@3 -[[32mDebug[39m] Value to copy: -s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop3(2: u32) +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; - var@5 -> ⊥ : (u32, bool) ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32; + j := 0: u32; + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32; + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + nop +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + nop +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> false ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@17 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 0: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + nop +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 0: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 2: u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 2: u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + nop +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32; + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> false ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 0: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@17 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + continue 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> false ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; } -- op: -copy var@4 -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -19018,26 +35670,316 @@ s@1 : u32 **Context**: # Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 1: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> 1: u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] +[[32mDebug[39m] drop_value: place: var@19 +[[32mDebug[39m] drop_value: place: var@18 +[[32mDebug[39m] drop_value: place: var@17 +[[32mDebug[39m] drop_value: place: var@16 +[[32mDebug[39m] drop_value: place: var@15 +[[32mDebug[39m] drop_value: place: var@14 +[[32mDebug[39m] drop_value: place: var@13 +[[32mDebug[39m] drop_value: place: var@12 +[[32mDebug[39m] drop_value: place: var@11 +[[32mDebug[39m] drop_value: place: var@10 +[[32mDebug[39m] drop_value: place: var@9 +[[32mDebug[39m] drop_value: place: var@8 +[[32mDebug[39m] drop_value: place: var@7 +[[32mDebug[39m] drop_value: place: var@6 +[[32mDebug[39m] drop_value: place: var@5 +[[32mDebug[39m] drop_value: place: var@4 +[[32mDebug[39m] drop_value: place: j +[[32mDebug[39m] drop_value: place: i +[[32mDebug[39m] drop_value: place: max +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 3: u32 ; + max -> ⊥ : u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> s@2 : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; - var@5 -> ⊥ : (u32, bool) ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -[[32mDebug[39m] test_function_symbolic: subs_test [[32mDebug[39m] **About to evaluate statement**: [ - var@3 := copy x; - var@4 := copy y; - var@0 := copy var@3 - copy var@4; + var@12 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -19047,19 +35989,38 @@ s@1 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> 3: u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } [[32mDebug[39m] **About to evaluate statement**: [ - var@3 := copy x + var@11 := move var@12 == 3: u32 ] **Context**: @@ -19068,41 +36029,150 @@ s@1 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> 3: u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> true ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -- op: -copy x -[[32mDebug[39m] Value to copy: -s@0 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := copy y; - var@0 := copy var@3 - copy var@4; + var@10 := ¬ move var@11 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> true ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -19112,19 +36182,17893 @@ s@0 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> false ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := copy y + assert(¬move var@10) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> false ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop4(20: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 1: u32; + j := 0: u32; + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 20: u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 20: u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32; + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 20: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 20: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 20: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 20: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j; + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12; + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy var@11 + copy var@12 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + switch (move var@10) { + 17: u32 => { + continue 0 + } + _ => { + nop + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + nop +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14; + j := copy j + 1: u32; + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@14 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32; + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 1 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 20: u32 ; + i -> 1: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> 1: u32 ; + var@12 -> 0: u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> 1: u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] +[[32mDebug[39m] drop_value: place: var@19 +[[32mDebug[39m] drop_value: place: var@18 +[[32mDebug[39m] drop_value: place: var@17 +[[32mDebug[39m] drop_value: place: var@16 +[[32mDebug[39m] drop_value: place: var@15 +[[32mDebug[39m] drop_value: place: var@14 +[[32mDebug[39m] drop_value: place: var@13 +[[32mDebug[39m] drop_value: place: var@12 +[[32mDebug[39m] drop_value: place: var@11 +[[32mDebug[39m] drop_value: place: var@10 +[[32mDebug[39m] drop_value: place: var@9 +[[32mDebug[39m] drop_value: place: var@8 +[[32mDebug[39m] drop_value: place: var@7 +[[32mDebug[39m] drop_value: place: var@6 +[[32mDebug[39m] drop_value: place: var@5 +[[32mDebug[39m] drop_value: place: var@4 +[[32mDebug[39m] drop_value: place: j +[[32mDebug[39m] drop_value: place: i +[[32mDebug[39m] drop_value: place: max +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> ⊥ : u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : u32 ; + var@12 -> ⊥ : u32 ; + var@13 -> ⊥ : (u32, bool) ; + var@14 -> ⊥ : u32 ; + var@15 -> ⊥ : (u32, bool) ; + var@16 -> ⊥ : (u32, bool) ; + var@17 -> ⊥ : u32 ; + var@18 -> ⊥ : (u32, bool) ; + var@19 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> 1: u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := move var@16 == 1: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> 1: u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> true ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := ¬ move var@15 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> true ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> false ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@14) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> false ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop5(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32; + j := 0: u32; + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32; + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32; + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 0: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 0: u32 ; + var@9 -> 2: u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@10 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 0: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> 2: u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 1: u32 ; + var@9 -> 2: u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> true ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 0: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@10 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + j := copy j + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 1: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> false ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@13 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 1: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> true ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy j +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 < move var@9 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> 2: u32 ; + var@9 -> 2: u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> false ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 0: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@13 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max; + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6; + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := move var@5 < move var@6 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> 2: u32 ; + var@6 -> 2: u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@4) { + loop { + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; + if (move var@7) { + var@10 := copy j; + s := copy s + copy var@10; + j := copy j + 1: u32; + continue 0 + } + else { + break 0 + } + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; + continue 0 + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> false ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + j -> 2: u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> 1: u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> 1: u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] +[[32mDebug[39m] drop_value: place: var@15 +[[32mDebug[39m] drop_value: place: var@14 +[[32mDebug[39m] drop_value: place: var@13 +[[32mDebug[39m] drop_value: place: var@12 +[[32mDebug[39m] drop_value: place: var@11 +[[32mDebug[39m] drop_value: place: var@10 +[[32mDebug[39m] drop_value: place: var@9 +[[32mDebug[39m] drop_value: place: var@8 +[[32mDebug[39m] drop_value: place: var@7 +[[32mDebug[39m] drop_value: place: var@6 +[[32mDebug[39m] drop_value: place: var@5 +[[32mDebug[39m] drop_value: place: var@4 +[[32mDebug[39m] drop_value: place: j +[[32mDebug[39m] drop_value: place: i +[[32mDebug[39m] drop_value: place: max +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> ⊥ : u32 ; + i -> ⊥ : u32 ; + j -> ⊥ : u32 ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : u32 ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : u32 ; + var@10 -> ⊥ : u32 ; + var@11 -> ⊥ : (u32, bool) ; + var@12 -> ⊥ : (u32, bool) ; + var@13 -> ⊥ : u32 ; + var@14 -> ⊥ : (u32, bool) ; + var@15 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@20 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> 2: u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@19 := move var@20 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> 2: u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> true ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@18 := ¬ move var@19 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> true ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> false ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@18) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> false ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop6(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32; + s := 0: u32; + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } + }; + s := copy s + 1: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32; + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } + }; + s := copy s + 1: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := 0: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> ⊥ : u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } + }; + s := copy s + 1: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + loop { + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 0: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := move var@7 > 3: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> 0: u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> false ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@8 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 0: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 1: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> 1: u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := move var@7 > 3: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> 1: u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> false ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 0: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + copy var@8 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 0: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32; + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + i := copy i + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 1: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + continue 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max; + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5; + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 < move var@5 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> 2: u32 ; + var@5 -> 2: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + if (move var@3) { + var@7 := copy i; + var@6 := move var@7 > 3: u32; + if (move var@6) { + break 0 + } + else { + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; + continue 0 + } + } + else { + break 0 + } +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> false ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + break 0 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + 1: u32; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + s := copy s + 1: u32 +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 1: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> 2: u32 ; + i -> 2: u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> 1: u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [11,10,9,8,7,6,5,4,3,2,1] +[[32mDebug[39m] drop_value: place: var@11 +[[32mDebug[39m] drop_value: place: var@10 +[[32mDebug[39m] drop_value: place: var@9 +[[32mDebug[39m] drop_value: place: var@8 +[[32mDebug[39m] drop_value: place: var@7 +[[32mDebug[39m] drop_value: place: var@6 +[[32mDebug[39m] drop_value: place: var@5 +[[32mDebug[39m] drop_value: place: var@4 +[[32mDebug[39m] drop_value: place: var@3 +[[32mDebug[39m] drop_value: place: i +[[32mDebug[39m] drop_value: place: max +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + +# Frame 1: +{ + s -> 2: u32 ; + max -> ⊥ : u32 ; + i -> ⊥ : u32 ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : u32 ; + var@8 -> ⊥ : u32 ; + var@9 -> ⊥ : (u32, bool) ; + var@10 -> ⊥ : (u32, bool) ; + var@11 -> ⊥ : (u32, bool) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@24 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> 2: u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@23 := move var@24 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> 2: u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> ⊥ : bool ; + var@23 -> true ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@22 := ¬ move var@23 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> ⊥ : bool ; + var@23 -> true ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> false ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@22) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> false ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 2: u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> 1: u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> 3: u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> 1: u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> 2: u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> 2: u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] test_unit_function: id_mut_mut_test1 +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: +{ Values.value = + (Values.Borrow + (Values.MutBorrow (<opaque>, + { Values.value = + (Values.Concrete + (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); + ty = (Types.Integer Types.I32) } + ))); + ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) } +[[32mDebug[39m] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (&mut@0 (0: i32)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (&mut@0 (0: i32)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (&mut@0 (0: i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (&mut@0 (0: i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +# Frame 1: +{ + var@0 -> &mut@4 (&mut@0 (0: i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (⌊mut@4⌋) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +# Frame 1: +{ + var@0 -> &mut@4 (&mut@0 (0: i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (⌊mut@4⌋) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [2,1] +[[32mDebug[39m] drop_value: place: var@2 +[[32mDebug[39m] drop_value: place: x +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +# Frame 1: +{ + var@0 -> &mut@4 (&mut@0 (0: i32)) ; + x -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (0: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (0: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy *(px) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> 1: i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> 1: i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> true ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> true ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> false ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@6) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> false ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (1: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> 1: i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> 1: i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> true ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> true ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> false ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> false ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] test_unit_function: id_mut_mut_test2 +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + 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 ; +} + + + +[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: +{ Values.value = + (Values.Borrow + (Values.MutBorrow (<opaque>, + { Values.value = + (Values.Concrete + (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); + ty = (Types.Integer Types.I32) } + ))); + ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) } +[[32mDebug[39m] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + 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 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (&mut@0 (0: i32)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + 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 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (&mut@0 (0: i32)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + 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 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (&mut@0 (0: i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + 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 ; +} + +# Frame 1: +{ + var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (&mut@0 (0: i32)) ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + 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 ; +} + +# Frame 1: +{ + var@0 -> &mut@4 (&mut@0 (0: i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (⌊mut@4⌋) ; +} + + + +[[32mDebug[39m] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + 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 ; +} + +# Frame 1: +{ + var@0 -> &mut@4 (&mut@0 (0: i32)) ; + x -> &mut@2 (⌊mut@3⌋) ; + var@2 -> &mut@3 (⌊mut@4⌋) ; +} + +[[32mDebug[39m] ctx_pop_frame: locals to drop: [2,1] +[[32mDebug[39m] drop_value: place: var@2 +[[32mDebug[39m] drop_value: place: x +[[32mDebug[39m] ctx_pop_frame: after dropping local variables: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + 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 ; +} + +# Frame 1: +{ + var@0 -> &mut@4 (&mut@0 (0: i32)) ; + x -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + y := 2: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 2: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + py := &mut y +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 2: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (2: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := &mut *(py) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (2: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> &mut@6 (2: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(ppy) := move var@8 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@0 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> &mut@6 (2: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@6 (2: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy *(px) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@4⌋) ; + ppy -> &mut@4 (&mut@6 (2: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> 2: i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 2: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> 2: i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> true ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> true ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> false ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> false ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(px) := 3: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> 1: i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := move var@14 == 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> 1: i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> true ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := ¬ move var@13 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> true ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> false ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@12) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> false ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy y +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> &mut@6 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 3: 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 -> 3: i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := move var@17 == 3: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 3: 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 -> 3: i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 3: 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 -> true ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := ¬ move var@16 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 3: 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 -> true ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 3: 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 -> false ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@15) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 3: 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 -> false ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 3: 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 ; +} + + + +[[32mDebug[39m] test_function_symbolic: add_test +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := copy x; + var@4 := copy y; + var@0 := copy var@3 + copy var@4; + return ] **Context**: @@ -19136,15 +54080,19 @@ s@0 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := copy x +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19153,20 +54101,17 @@ s@0 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } -- op: -copy y -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := copy var@3 - copy var@4; + var@4 := copy y; + var@0 := copy var@3 + copy var@4; return ] @@ -19180,7 +54125,7 @@ s@1 : u32 x -> s@0 : u32 ; y -> s@1 : u32 ; var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; + var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -19188,7 +54133,7 @@ s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := copy var@3 - copy var@4 + var@4 := copy y ] **Context**: @@ -19201,14 +54146,19 @@ s@1 : u32 x -> s@0 : u32 ; y -> s@1 : u32 ; var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; + var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := copy var@3 + copy var@4; + return +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19223,13 +54173,13 @@ s@1 : u32 } -- op: -copy var@3 -[[32mDebug[39m] Value to copy: -s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := copy var@3 + copy var@4 +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19244,11 +54194,7 @@ s@0 : u32 } -- op: -copy var@4 -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -19270,12 +54216,12 @@ s@1 : u32 -[[32mDebug[39m] test_function_symbolic: div_test +[[32mDebug[39m] test_function_symbolic: subs_test [[32mDebug[39m] **About to evaluate statement**: [ var@3 := copy x; var@4 := copy y; - var@0 := move var@3 / move var@4; + var@0 := copy var@3 - copy var@4; return ] @@ -19290,7 +54236,7 @@ s@1 : u32 y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + var@5 -> ⊥ : (u32, bool) ; } @@ -19311,36 +54257,15 @@ s@1 : u32 y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + var@5 -> ⊥ : (u32, bool) ; } -- op: -copy x -[[32mDebug[39m] Value to copy: -s@0 : u32 [[32mDebug[39m] **About to evaluate statement**: [ var@4 := copy y; - var@0 := move var@3 / move var@4; + var@0 := copy var@3 - copy var@4; return ] @@ -19355,7 +54280,7 @@ s@0 : u32 y -> s@1 : u32 ; var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + var@5 -> ⊥ : (u32, bool) ; } @@ -19376,13 +54301,18 @@ s@0 : u32 y -> s@1 : u32 ; var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + var@5 -> ⊥ : (u32, bool) ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := copy var@3 - copy var@4; + return +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19392,20 +54322,15 @@ s@0 : u32 x -> s@0 : u32 ; y -> s@1 : u32 ; var@3 -> s@0 : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + var@4 -> s@1 : u32 ; + var@5 -> ⊥ : (u32, bool) ; } -- op: -copy y -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := move var@3 / move var@4; - return + var@0 := copy var@3 - copy var@4 ] **Context**: @@ -19419,14 +54344,14 @@ s@1 : u32 y -> s@1 : u32 ; var@3 -> s@0 : u32 ; var@4 -> s@1 : u32 ; - var@5 -> ⊥ : bool ; + var@5 -> ⊥ : (u32, bool) ; } [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := move var@3 / move var@4 + return ] **Context**: @@ -19435,18 +54360,26 @@ s@1 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; + var@0 -> s@2 : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; var@3 -> s@0 : u32 ; var@4 -> s@1 : u32 ; - var@5 -> ⊥ : bool ; + var@5 -> ⊥ : (u32, bool) ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] test_function_symbolic: div_test +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := copy x; + var@4 := copy y; + var@0 := move var@3 / move var@4; + return +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19455,19 +54388,19 @@ s@1 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } -- op: -move var@3 -[[32mDebug[39m] Value to move: -s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := copy x +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19477,18 +54410,16 @@ s@0 : u32 x -> s@0 : u32 ; y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; - var@4 -> s@1 : u32 ; + var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } -- op: -move var@4 -[[32mDebug[39m] Value to move: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ + var@4 := copy y; + var@0 := move var@3 / move var@4; return ] @@ -19498,23 +54429,19 @@ s@1 : u32 # Frame 0: { - var@0 -> s@2 : u32 ; + var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } -[[32mDebug[39m] test_function_symbolic: rem_test [[32mDebug[39m] **About to evaluate statement**: [ - var@3 := copy x; - var@4 := copy y; - var@0 := move var@3 % move var@4; - return + var@4 := copy y ] **Context**: @@ -19526,7 +54453,7 @@ s@1 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -19535,7 +54462,8 @@ s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@3 := copy x + var@0 := move var@3 / move var@4; + return ] **Context**: @@ -19547,15 +54475,19 @@ s@1 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := move var@3 / move var@4 +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19564,21 +54496,15 @@ s@1 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } -- op: -copy x -[[32mDebug[39m] Value to copy: -s@0 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := copy y; - var@0 := move var@3 % move var@4; return ] @@ -19588,19 +54514,23 @@ s@0 : u32 # Frame 0: { - var@0 -> ⊥ : u32 ; + var@0 -> s@2 : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } +[[32mDebug[39m] test_function_symbolic: rem_test [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := copy y + var@3 := copy x; + var@4 := copy y; + var@0 := move var@3 % move var@4; + return ] **Context**: @@ -19612,15 +54542,19 @@ s@0 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := copy x +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19629,19 +54563,16 @@ s@0 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; + var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } -- op: -copy y -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ + var@4 := copy y; var@0 := move var@3 % move var@4; return ] @@ -19656,7 +54587,7 @@ s@1 : u32 x -> s@0 : u32 ; y -> s@1 : u32 ; var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; + var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -19664,7 +54595,7 @@ s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := move var@3 % move var@4 + var@4 := copy y ] **Context**: @@ -19677,14 +54608,19 @@ s@1 : u32 x -> s@0 : u32 ; y -> s@1 : u32 ; var@3 -> s@0 : u32 ; - var@4 -> s@1 : u32 ; + var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := move var@3 % move var@4; + return +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19699,13 +54635,13 @@ s@1 : u32 } -- op: -move var@3 -[[32mDebug[39m] Value to move: -s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := move var@3 % move var@4 +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -19714,17 +54650,13 @@ s@0 : u32 var@0 -> ⊥ : u32 ; x -> s@0 : u32 ; y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; + var@3 -> s@0 : u32 ; var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } -- op: -move var@4 -[[32mDebug[39m] Value to move: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -19811,30 +54743,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -23: u32 - [[32mDebug[39m] **About to evaluate statement**: [ y := 44: u32; @@ -19898,30 +54806,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -44: u32 - [[32mDebug[39m] **About to evaluate statement**: [ z := 67: u32; @@ -19984,30 +54868,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -67: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@5 := copy x; @@ -20069,32 +54929,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -23: u32 [[32mDebug[39m] **About to evaluate statement**: [ (p).x := move var@5; @@ -20155,32 +54989,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair<u32, u32> ; - var@5 -> 23: u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -23: u32 [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (0, None)), 0)) ty: (Types.Adt ((Types.AdtId 0), [], @@ -20244,30 +55052,6 @@ ty: (Types.Adt ((Types.AdtId 0), [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -67: u32 - [[32mDebug[39m] **About to evaluate statement**: [ (s as test1::Sum::Right).0 := true; @@ -20326,30 +55110,6 @@ ty: (Types.Adt ((Types.AdtId 0), [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> test1::Pair { x = 23: u32; y = 67: u32; } ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum<u32, bool> ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -true - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (6, (Some 1))), 0)) ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) @@ -20466,30 +55226,6 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> test1::Pair { x = 23: u32; y = 67: u32; } ; - var@5 -> ⊥ : u32 ; - s -> test1::Sum::Right { 0 = true; } ; - o -> ⊥ : test1::One<u64> ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; -} - - -- op: -3: u64 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (2, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) @@ -20733,27 +55469,6 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -s@0 : u32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := copy y; @@ -20804,27 +55519,6 @@ s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> s@0 : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ var@3 := move var@4 >= move var@5; @@ -20874,48 +55568,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> s@1 : u32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ if (move var@3) { @@ -20969,27 +55621,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> true ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@0 := copy x @@ -21011,48 +55642,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> false ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@0 := copy y @@ -21074,27 +55663,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -21197,52 +55765,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -4: u32 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -3: u32 - [[32mDebug[39m] **About to evaluate statement**: [ y := move get_max(10: u32, 11: u32); @@ -21301,52 +55823,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -10: u32 - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -11: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@4 := copy x; @@ -21404,31 +55880,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -s@0 : u32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := copy y; @@ -21485,31 +55936,6 @@ s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> ⊥ : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> ⊥ : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ z := copy var@4 + copy var@5; @@ -21565,56 +55991,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> ⊥ : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy var@4 - -[[32mDebug[39m] Value to copy: -s@0 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> ⊥ : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy var@5 - -[[32mDebug[39m] Value to copy: -s@1 : u32 [[32mDebug[39m] **About to evaluate statement**: [ var@9 := copy z; @@ -21669,31 +56045,6 @@ s@1 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> s@2 : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -copy z - -[[32mDebug[39m] Value to copy: -s@2 : u32 [[32mDebug[39m] **About to evaluate statement**: [ var@8 := move var@9 == 15: u32; @@ -21747,54 +56098,6 @@ s@2 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> s@2 : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> s@2 : u32 ; -} - - -- op: -move var@9 - -[[32mDebug[39m] Value to move: -s@2 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> s@2 : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -15: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := ¬ move var@8; @@ -21847,31 +56150,6 @@ s@2 : u32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> s@2 : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> ⊥ : bool ; - var@8 -> s@3 : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -s@3 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@7); @@ -21923,31 +56201,6 @@ s@3 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - z -> s@2 : u32 ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; - var@6 -> ⊥ : (u32, bool) ; - var@7 -> true ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ return @@ -22016,25 +56269,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> ⊥ : i32 ; - var@3 -> ⊥ : bool ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -s@0 : i32 [[32mDebug[39m] **About to evaluate statement**: [ var@3 := copy var@2 == -2147483648: i32; @@ -22076,42 +56310,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> ⊥ : bool ; -} - - -- op: -copy var@2 - -[[32mDebug[39m] Value to copy: -s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> ⊥ : bool ; -} - - -- op: --2147483648: i32 - [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@3); @@ -22152,25 +56350,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> true ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@0 := - move var@2; @@ -22210,25 +56389,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> ⊥ : bool ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -s@0 : i32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -22287,22 +56447,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; -} - - -- op: -3: i32 - [[32mDebug[39m] **About to evaluate statement**: [ y := -3: i32; @@ -22340,22 +56484,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> ⊥ : i32 ; -} - - -- op: --3: i32 - [[32mDebug[39m] **About to evaluate statement**: [ return @@ -22427,26 +56555,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &mut x; @@ -22597,26 +56705,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⌊mut@1⌋ ; - ppx -> &mut@1 (&mut@0 (0: i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@6 := copy x; @@ -22665,28 +56753,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⌊mut@1⌋ ; - ppx -> &mut@1 (&mut@0 (1: i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := move var@6 == 1: i32; @@ -22734,48 +56800,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> 1: i32 ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -1: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@4 := ¬ move var@5; @@ -22822,28 +56846,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> s@0 : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -s@0 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@4); @@ -22889,28 +56891,6 @@ s@0 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> true ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ return @@ -23026,38 +57006,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ y := 1: i32; @@ -23149,38 +57097,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -1: i32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &mut x; @@ -23621,40 +57537,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> &mut@2 (&mut@0 (0: i32)) ; - var@6 -> &mut@3 (1: i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -&mut@3 (1: i32) [[32mDebug[39m] **About to evaluate statement**: [ *(*(ppx)) := 2: i32; @@ -23740,38 +57622,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> &mut@2 (&mut@3 (1: i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@9 := copy *(px); @@ -23856,40 +57706,6 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> &mut@2 (&mut@3 (2: i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy *(px) - -[[32mDebug[39m] Value to copy: -2: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@8 := move var@9 == 2: i32; @@ -23973,72 +57789,6 @@ copy *(px) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> 2: i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@9 - -[[32mDebug[39m] Value to move: -2: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := ¬ move var@8; @@ -24121,40 +57871,6 @@ move var@9 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> s@0 : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -s@0 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@7); @@ -24236,40 +57952,6 @@ s@0 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> true ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@12 := copy x; @@ -24350,40 +58032,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@11 := move var@12 == 0: i32; @@ -24463,72 +58111,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> 0: i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@12 - -[[32mDebug[39m] Value to move: -0: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@10 := ¬ move var@11; @@ -24607,40 +58189,6 @@ move var@12 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> s@2 : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@11 - -[[32mDebug[39m] Value to move: -s@2 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@10); @@ -24718,40 +58266,6 @@ s@2 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> true ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@10 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@15 := copy *(py); @@ -24828,40 +58342,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> &mut@3 (2: i32) ; - py -> &mut@1 (⌊mut@3⌋) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy *(py) - -[[32mDebug[39m] Value to copy: -2: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@14 := move var@15 == 2: i32; @@ -24937,72 +58417,6 @@ copy *(py) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> 2: i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@15 - -[[32mDebug[39m] Value to move: -2: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@13 := ¬ move var@14; @@ -25077,40 +58491,6 @@ move var@15 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> s@4 : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@14 - -[[32mDebug[39m] Value to move: -s@4 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@13); @@ -25184,40 +58564,6 @@ s@4 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> true ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@13 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@18 := copy y; @@ -25290,40 +58636,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⌊mut@1⌋ ; - px -> ⊥ : &'_ mut (i32) ; - py -> &mut@1 (2: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -2: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@17 := move var@18 == 2: i32; @@ -25395,72 +58707,6 @@ copy y -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> 2: i32 ; -} - - -- op: -move var@18 - -[[32mDebug[39m] Value to move: -2: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -2: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@16 := ¬ move var@17; @@ -25531,40 +58777,6 @@ move var@18 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> s@6 : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@17 - -[[32mDebug[39m] Value to move: -s@6 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@16); @@ -25634,40 +58846,6 @@ s@6 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 2: i32 ; - px -> ⊥ : &'_ mut (i32) ; - py -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : i32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> true ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@16 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ return @@ -25795,25 +58973,6 @@ true - type_params: [test1::List<i32>] - args: [move var@3] - dest: var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> test1::List::Nil ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -25856,23 +59015,6 @@ test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; -} - - -- op: -0: i32 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -25917,25 +59059,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -s@0 : std::boxed::Box<test1::List<i32>> [[32mDebug[39m] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -26100,28 +59223,6 @@ s@0 : std::boxed::Box<test1::List<i32>> - type_params: [i32] - args: [0: i32] - dest: b -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box<i32> ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@3 := &two-phase b; @@ -26242,28 +59343,6 @@ s@0 : std::boxed::Box<test1::List<i32>> - type_params: [i32] - args: [move var@3] - dest: x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({0}, s@0 : std::boxed::Box<i32>) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⌊inactivated_mut@0⌋ ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@3 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Symbolic @@ -26274,8 +59353,6 @@ move var@3 }); ty = (Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) } -[[32mDebug[39m] Value to move: -&mut@0 (s@0 : std::boxed::Box<i32>) [[32mDebug[39m] **About to evaluate statement**: [ *(x) := 1: i32; @@ -26340,8 +59417,9 @@ move var@3 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] expand_symbolic_value: s@1 : &r@0 mut (i32) + +- original context: # Ended regions: {} # 1 frame(s) @@ -26363,8 +59441,27 @@ move var@3 } -- op: -1: i32 +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> &mut@1 (s@2 : i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; + x -> ⊥ : &'_ (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ + } +} + [[32mDebug[39m] **About to evaluate statement**: [ @@ -26429,6 +59526,112 @@ move var@3 +[[32mDebug[39m] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> &mut@1 (1: i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; + x -> ⊥ : &'_ (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ + } +} + +[[32mDebug[39m] end_abstraction: 0 +- context after parent abstractions ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> &mut@1 (1: i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; + x -> ⊥ : &'_ (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ + } +} + +[[32mDebug[39m] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; + x -> ⊥ : &'_ (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)), + @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) } + } +} + +[[32mDebug[39m] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> &mut@1 (1: i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; + x -> ⊥ : &'_ (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ + } +} + + +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> s@3 : std::boxed::Box<i32> ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; + x -> ⊥ : &'_ (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; +} + [[32mDebug[39m] **About to evaluate statement**: [ x := move core::ops::deref::Deref<Box<i32>>::deref(move var@5); @@ -26488,8 +59691,17 @@ move var@3 - type_params: [i32] - args: [move var@5] - dest: x -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return +] + +**Context**: # Ended regions: {0} # 1 frame(s) @@ -26499,27 +59711,22 @@ move var@3 b -> @shared_loan({2}, s@3 : std::boxed::Box<i32>) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⌊shared@2⌋ ; + x -> s@4 : &r@1 (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + proj_loans (s@4 : &r@1 (i32)) + } } -- op: -move var@5 -[[32mDebug[39m] Value to move: -⌊shared@2⌋ [[32mDebug[39m] **About to evaluate statement**: [ - var@8 := copy *(x); - var@7 := move var@8 == 1: i32; - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); - return + var@8 := copy *(x) ] **Context**: @@ -26545,12 +59752,9 @@ move var@5 -[[32mDebug[39m] -**About to evaluate statement**: [ - var@8 := copy *(x) -] +[[32mDebug[39m] expand_symbolic_value: s@4 : &r@1 (i32) -**Context**: +- original context: # Ended regions: {0} # 1 frame(s) @@ -26572,9 +59776,7 @@ move var@5 } - -[[32mDebug[39m] eval_operand: -- ctx: +- new context: # Ended regions: {0} # 1 frame(s) @@ -26584,23 +59786,18 @@ move var@5 b -> @shared_loan({2}, s@3 : std::boxed::Box<i32>) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> s@4 : &r@1 (i32) ; + x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - proj_loans (s@4 : &r@1 (i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } -- op: -copy *(x) - -[[32mDebug[39m] Value to copy: -s@5 : i32 [[32mDebug[39m] **About to evaluate statement**: [ var@7 := move var@8 == 1: i32; @@ -26661,8 +59858,15 @@ s@5 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return +] + +**Context**: # Ended regions: {0} # 1 frame(s) @@ -26675,8 +59879,8 @@ s@5 : i32 x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> s@5 : i32 ; + var@7 -> s@6 : bool ; + var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) @@ -26684,13 +59888,13 @@ s@5 : i32 } -- op: -move var@8 -[[32mDebug[39m] Value to move: -s@5 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: # Ended regions: {0} # 1 frame(s) @@ -26703,7 +59907,7 @@ s@5 : i32 x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; + var@7 -> s@6 : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, @@ -26712,12 +59916,9 @@ s@5 : i32 } -- op: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ - var@6 := ¬ move var@7; assert(¬move var@6); drop(b); return @@ -26735,8 +59936,8 @@ s@5 : i32 var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> s@6 : bool ; + var@6 -> s@7 : bool ; + var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, @@ -26748,7 +59949,7 @@ s@5 : i32 [[32mDebug[39m] **About to evaluate statement**: [ - var@6 := ¬ move var@7 + assert(¬move var@6) ] **Context**: @@ -26763,8 +59964,8 @@ s@5 : i32 var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> ⊥ : bool ; - var@7 -> s@6 : bool ; + var@6 -> s@7 : bool ; + var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, @@ -26774,8 +59975,13 @@ s@5 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + drop(b); + return +] + +**Context**: # Ended regions: {0} # 1 frame(s) @@ -26788,7 +59994,7 @@ s@5 : i32 x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; var@6 -> ⊥ : bool ; - var@7 -> s@6 : bool ; + var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, @@ -26797,16 +60003,10 @@ s@5 : i32 } -- op: -move var@7 -[[32mDebug[39m] Value to move: -s@6 : bool [[32mDebug[39m] **About to evaluate statement**: [ - assert(¬move var@6); - drop(b); - return + drop(b) ] **Context**: @@ -26821,7 +60021,7 @@ s@6 : bool var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> s@7 : bool ; + var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { @@ -26832,12 +60032,9 @@ s@6 : bool -[[32mDebug[39m] -**About to evaluate statement**: [ - assert(¬move var@6) -] - -**Context**: +[[32mDebug[39m] drop_value: place: b +[[32mDebug[39m] end_abstraction: 1 +- original context: # Ended regions: {0} # 1 frame(s) @@ -26849,7 +60046,7 @@ s@6 : bool var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> s@7 : bool ; + var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { @@ -26858,10 +60055,8 @@ s@6 : bool } } - - -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] end_abstraction: 1 +- context after parent abstractions ended: # Ended regions: {0} # 1 frame(s) @@ -26873,7 +60068,7 @@ s@6 : bool var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; x -> ⌊shared@3⌋ ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; - var@6 -> true ; + var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { @@ -26882,19 +60077,8 @@ s@6 : bool } } - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -true -[[32mDebug[39m] -**About to evaluate statement**: [ - drop(b); - return -] - -**Context**: +[[32mDebug[39m] end_abstraction: 1 +- context after loans ended: # Ended regions: {0} # 1 frame(s) @@ -26904,25 +60088,19 @@ true b -> @shared_loan({2}, s@3 : std::boxed::Box<i32>) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; - x -> ⌊shared@3⌋ ; + x -> ⊥ : &'_ (i32) ; var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + @ended_shared_loan(s@5 : i32, proj_loans (s@5 : i32)) } } - - -[[32mDebug[39m] -**About to evaluate statement**: [ - drop(b) -] - -**Context**: +[[32mDebug[39m] end_abstraction: 1 +- original context: # Ended regions: {0} # 1 frame(s) @@ -26944,8 +60122,23 @@ true } +- new context: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> s@3 : std::boxed::Box<i32> ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ; + x -> ⊥ : &'_ (i32) ; + var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; +} -[[32mDebug[39m] drop_value: place: b [[32mDebug[39m] **About to evaluate statement**: [ return @@ -27006,23 +60199,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -s@0 : i32 [[32mDebug[39m] **About to evaluate statement**: [ return @@ -27098,28 +60274,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - px -> ⊥ : &'_ (i32) ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &x; @@ -27231,30 +60385,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -copy x - -[[32mDebug[39m] Value to copy: -@shared_loan({0}, 0: i32) [[32mDebug[39m] **About to evaluate statement**: [ y := move copy_int(move var@4); @@ -27309,30 +60439,6 @@ copy x -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> ⊥ : i32 ; - var@4 -> 0: i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@7 := copy *(px); @@ -27386,30 +60492,6 @@ move var@4 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> s@0 : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -copy *(px) - -[[32mDebug[39m] Value to copy: -0: i32 [[32mDebug[39m] **About to evaluate statement**: [ var@8 := copy y; @@ -27462,30 +60544,6 @@ copy *(px) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> s@0 : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> 0: i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -s@0 : i32 [[32mDebug[39m] **About to evaluate statement**: [ var@6 := move var@7 == move var@8; @@ -27537,54 +60595,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> s@0 : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> 0: i32 ; - var@8 -> s@0 : i32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -0: i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> s@0 : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> s@0 : i32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -s@0 : i32 [[32mDebug[39m] **About to evaluate statement**: [ var@5 := ¬ move var@6; @@ -27635,30 +60645,6 @@ s@0 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> s@0 : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> s@1 : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -s@1 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@5); @@ -27708,30 +60694,6 @@ s@1 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> s@0 : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> true ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; -} - - -- op: -move var@5 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ return @@ -27811,6 +60773,38 @@ true +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 (test1::List<T>) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 (test1::List<T>)) + } + var@0 -> ⊥ : bool ; + l -> s@0 : &r@0 (test1::List<T>) ; + var@2 -> ⊥ : isize ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, s@1 : test1::List<T>, proj_loans (s@1 : test1::List<T>)) + } + var@0 -> ⊥ : bool ; + l -> ⌊shared@0⌋ ; + var@2 -> ⊥ : isize ; +} + + [[32mDebug[39m] **About to evaluate statement**: [ switch (move var@2) { @@ -27874,27 +60868,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box<test1::List<T>>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box<test1::List<T>>); }) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> 0: isize ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -0: isize [[32mDebug[39m] **About to evaluate statement**: [ var@0 := true @@ -27916,25 +60889,6 @@ move var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box<test1::List<T>>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box<test1::List<T>>); }) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> ⊥ : isize ; -} - - -- op: -true - [[32mDebug[39m] **About to evaluate statement**: [ return @@ -28019,27 +60973,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Nil, test1::List::Nil) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> 1: isize ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -1: isize [[32mDebug[39m] **About to evaluate statement**: [ var@0 := false @@ -28061,25 +60994,6 @@ move var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Nil, test1::List::Nil) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ return @@ -28220,29 +61134,6 @@ false - type_params: [test1::List<i32>] - args: [move var@3] - dest: var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> test1::List::Nil ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -28298,27 +61189,6 @@ test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - - -- op: -0: i32 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -28376,29 +61246,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⊥ : &'_ (test1::List<i32>) ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -s@0 : std::boxed::Box<test1::List<i32>> [[32mDebug[39m] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -28555,29 +61402,6 @@ s@0 : std::boxed::Box<test1::List<i32>> -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; -} - - -- op: -copy var@7 - -[[32mDebug[39m] Value to copy: -⌊shared@0⌋ [[32mDebug[39m] **About to evaluate statement**: [ var@5 := move is_cons<i32>(move var@6); @@ -28628,8 +61452,15 @@ copy var@7 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -28640,23 +61471,20 @@ copy var@7 var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⌊shared@1⌋ ; + var@5 -> s@1 : bool ; + var@6 -> ⊥ : &'_ (test1::List<i32>) ; var@7 -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } -- op: -move var@6 -[[32mDebug[39m] Value to move: -⌊shared@1⌋ [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := ¬ move var@5; - assert(¬move var@4); - drop(l); - return + var@4 := ¬ move var@5 ] **Context**: @@ -28683,7 +61511,9 @@ move var@6 [[32mDebug[39m] **About to evaluate statement**: [ - var@4 := ¬ move var@5 + assert(¬move var@4); + drop(l); + return ] **Context**: @@ -28696,8 +61526,8 @@ move var@6 l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> s@1 : bool ; + var@4 -> s@2 : bool ; + var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List<i32>) ; var@7 -> ⌊shared@0⌋ ; abs@0{parents={}}{regions={0}} { @@ -28708,8 +61538,12 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@4) +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -28719,8 +61553,8 @@ move var@6 l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; - var@4 -> ⊥ : bool ; - var@5 -> s@1 : bool ; + var@4 -> s@2 : bool ; + var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List<i32>) ; var@7 -> ⌊shared@0⌋ ; abs@0{parents={}}{regions={0}} { @@ -28730,14 +61564,9 @@ move var@6 } -- op: -move var@5 -[[32mDebug[39m] Value to move: -s@1 : bool [[32mDebug[39m] **About to evaluate statement**: [ - assert(¬move var@4); drop(l); return ] @@ -28752,7 +61581,7 @@ s@1 : bool l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; - var@4 -> s@2 : bool ; + var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List<i32>) ; var@7 -> ⌊shared@0⌋ ; @@ -28766,7 +61595,7 @@ s@1 : bool [[32mDebug[39m] **About to evaluate statement**: [ - assert(¬move var@4) + drop(l) ] **Context**: @@ -28779,7 +61608,7 @@ s@1 : bool l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; - var@4 -> s@2 : bool ; + var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List<i32>) ; var@7 -> ⌊shared@0⌋ ; @@ -28791,80 +61620,85 @@ s@1 : bool -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] drop_value: place: l +[[32mDebug[39m] end_abstraction: 0 +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; + l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; - var@4 -> true ; + var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; + var@7 -> ⊥ : &'_ (test1::List<i32>) ; abs@0{parents={}}{regions={0}} { ⌊shared@1⌋, proj_loans (s@1 : bool) } } - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -true -[[32mDebug[39m] -**About to evaluate statement**: [ - drop(l); - return -] - -**Context**: +[[32mDebug[39m] end_abstraction: 0 +- context after parent abstractions ended: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; + l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; + var@7 -> ⊥ : &'_ (test1::List<i32>) ; abs@0{parents={}}{regions={0}} { ⌊shared@1⌋, proj_loans (s@1 : bool) } } +[[32mDebug[39m] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; + var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; + var@3 -> ⊥ : test1::List<i32> ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List<i32>) ; + var@7 -> ⊥ : &'_ (test1::List<i32>) ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } +} -[[32mDebug[39m] -**About to evaluate statement**: [ - drop(l) -] - -**Context**: +[[32mDebug[39m] end_abstraction: 0 +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; + l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List<i32>) ; - var@7 -> ⌊shared@0⌋ ; + var@7 -> ⊥ : &'_ (test1::List<i32>) ; abs@0{parents={}}{regions={0}} { ⌊shared@1⌋, proj_loans (s@1 : bool) @@ -28872,8 +61706,22 @@ true } +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } ; + var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; + var@3 -> ⊥ : test1::List<i32> ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List<i32>) ; + var@7 -> ⊥ : &'_ (test1::List<i32>) ; +} -[[32mDebug[39m] drop_value: place: l [[32mDebug[39m] **About to evaluate statement**: [ return @@ -28971,30 +61819,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> s@0 : test1::List<T> ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := false; @@ -29067,30 +61891,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> s@0 : test1::List<T> ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> ⊥ : bool ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ var@7 := true; @@ -29162,30 +61962,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> s@0 : test1::List<T> ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -true - [[32mDebug[39m] **About to evaluate statement**: [ var@8 := true; @@ -29256,30 +62032,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> s@0 : test1::List<T> ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -true - [[32mDebug[39m] **About to evaluate statement**: [ var@2 := discriminant(l); @@ -29391,32 +62143,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ; - var@2 -> 0: isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -0: isize [[32mDebug[39m] **About to evaluate statement**: [ var@8 := false; @@ -29478,30 +62204,6 @@ move var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ hd := move (l as test1::List::Cons).0; @@ -29562,32 +62264,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move (l as test1::List::Cons).0 - -[[32mDebug[39m] Value to move: -s@1 : T [[32mDebug[39m] **About to evaluate statement**: [ var@7 := false; @@ -29647,30 +62323,6 @@ s@1 : T -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -false - [[32mDebug[39m] **About to evaluate statement**: [ tl := move (l as test1::List::Cons).1; @@ -29729,32 +62381,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move (l as test1::List::Cons).1 - -[[32mDebug[39m] Value to move: -s@2 : std::boxed::Box<test1::List<T>> [[32mDebug[39m] **About to evaluate statement**: [ var@5 := move hd; @@ -29812,32 +62438,6 @@ s@2 : std::boxed::Box<test1::List<T>> -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box<test1::List<T>>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> s@2 : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move hd - -[[32mDebug[39m] Value to move: -s@1 : T [[32mDebug[39m] **About to evaluate statement**: [ var@6 := move deref_box(tl); @@ -29894,8 +62494,9 @@ s@1 : T -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] expand_symbolic_value: s@2 : std::boxed::Box<test1::List<T>> + +- original context: # Ended regions: {} # 1 frame(s) @@ -29915,20 +62516,7 @@ s@1 : T } -- op: -move deref_box(tl) - -[[32mDebug[39m] Value to move: -s@3 : test1::List<T> -[[32mDebug[39m] -**About to evaluate statement**: [ - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free<test1::List<T>>(move tl); - return -] - -**Context**: +- new context: # Ended regions: {} # 1 frame(s) @@ -29938,9 +62526,9 @@ s@3 : test1::List<T> l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box<test1::List<T>>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List<T>) ; + tl -> @Box(s@3 : test1::List<T>) ; var@5 -> s@1 : T ; - var@6 -> s@3 : test1::List<T> ; + var@6 -> ⊥ : test1::List<T> ; var@7 -> false ; var@8 -> false ; var@9 -> ⊥ : () ; @@ -29948,10 +62536,12 @@ s@3 : test1::List<T> } - [[32mDebug[39m] **About to evaluate statement**: [ - (var@0).0 := move var@5 + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free<test1::List<T>>(move tl); + return ] **Context**: @@ -29975,8 +62565,12 @@ s@3 : test1::List<T> -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + (var@0).0 := move var@5 +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -29996,11 +62590,7 @@ s@3 : test1::List<T> } -- op: -move var@5 -[[32mDebug[39m] Value to move: -s@1 : T [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) ty: (Types.Adt (Types.Tuple, [], @@ -30061,32 +62651,6 @@ ty: (Types.Adt (Types.Tuple, [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> (s@1 : T, ⊥ : test1::List<T>) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box<test1::List<T>>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List<T>) ; - var@5 -> ⊥ : T ; - var@6 -> s@3 : test1::List<T> ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move var@6 - -[[32mDebug[39m] Value to move: -s@3 : test1::List<T> [[32mDebug[39m] **About to evaluate statement**: [ var@9 := move alloc::alloc::box_free<test1::List<T>>(move tl); @@ -30214,32 +62778,6 @@ s@3 : test1::List<T> -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : (T, test1::List<T>) ; - l -> test1::List::Nil ; - var@2 -> 1: isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box<test1::List<T>> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List<T> ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -1: isize [[32mDebug[39m] **About to evaluate statement**: [ panic @@ -30403,32 +62941,6 @@ move var@2 - type_params: [test1::List<i32>] - args: [move var@3] - dest: var@2 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> test1::List::Nil ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@3 - -[[32mDebug[39m] Value to move: -test1::List::Nil [[32mDebug[39m] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -30493,30 +63005,6 @@ test1::List::Nil -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -30583,32 +63071,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@2 - -[[32mDebug[39m] Value to move: -s@0 : std::boxed::Box<test1::List<i32>> [[32mDebug[39m] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -30732,32 +63194,6 @@ s@0 : std::boxed::Box<test1::List<i32>> -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move l - -[[32mDebug[39m] Value to move: -test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } [[32mDebug[39m] **About to evaluate statement**: [ var@6 := move split_list<i32>(move var@7); @@ -30818,32 +63254,6 @@ test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List<i32> ; - var@6 -> ⊥ : (i32, test1::List<i32>) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@7 - -[[32mDebug[39m] Value to move: -test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } [[32mDebug[39m] **About to evaluate statement**: [ hd := copy (var@6).0; @@ -30903,8 +63313,9 @@ test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] expand_symbolic_value: s@1 : (i32, test1::List<i32>) + +- original context: # Ended regions: {} # 1 frame(s) @@ -30924,23 +63335,7 @@ test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } } -- op: -copy (var@6).0 - -[[32mDebug[39m] Value to copy: -s@2 : i32 -[[32mDebug[39m] -**About to evaluate statement**: [ - tl := move (var@6).1; - var@10 := copy hd; - var@9 := move var@10 == 0: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - drop(tl); - return -] - -**Context**: +- new context: # Ended regions: {} # 1 frame(s) @@ -30950,7 +63345,7 @@ s@2 : i32 l -> ⊥ : test1::List<i32> ; var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; var@3 -> ⊥ : test1::List<i32> ; - hd -> s@2 : i32 ; + hd -> ⊥ : i32 ; tl -> ⊥ : test1::List<i32> ; var@6 -> (s@2 : i32, s@3 : test1::List<i32>) ; var@7 -> ⊥ : test1::List<i32> ; @@ -30960,10 +63355,15 @@ s@2 : i32 } - [[32mDebug[39m] **About to evaluate statement**: [ - tl := move (var@6).1 + tl := move (var@6).1; + var@10 := copy hd; + var@9 := move var@10 == 0: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + drop(tl); + return ] **Context**: @@ -30987,8 +63387,12 @@ s@2 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + tl := move (var@6).1 +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -31008,11 +63412,7 @@ s@2 : i32 } -- op: -move (var@6).1 -[[32mDebug[39m] Value to move: -s@3 : test1::List<i32> [[32mDebug[39m] **About to evaluate statement**: [ var@10 := copy hd; @@ -31070,32 +63470,6 @@ s@3 : test1::List<i32> -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List<i32> ; - var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -copy hd - -[[32mDebug[39m] Value to copy: -s@2 : i32 [[32mDebug[39m] **About to evaluate statement**: [ var@9 := move var@10 == 0: i32; @@ -31152,56 +63526,6 @@ s@2 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List<i32> ; - var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> s@2 : i32 ; -} - - -- op: -move var@10 - -[[32mDebug[39m] Value to move: -s@2 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List<i32> ; - var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@8 := ¬ move var@9; @@ -31257,32 +63581,6 @@ s@2 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List<i32> ; - var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> ⊥ : bool ; - var@9 -> s@4 : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@9 - -[[32mDebug[39m] Value to move: -s@4 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@8); @@ -31337,32 +63635,6 @@ s@4 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List<i32> ; - var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ; - var@3 -> ⊥ : test1::List<i32> ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List<i32> ; - var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ; - var@7 -> ⊥ : test1::List<i32> ; - var@8 -> true ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; -} - - -- op: -move var@8 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ drop(tl); @@ -31501,31 +63773,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - abs@0{parents={}}{regions={0}} { - proj_loans (s@0 : bool), - proj_loans (s@1 : &r@0 mut (T)), - proj_loans (s@2 : &r@0 mut (T)) - } - var@0 -> ⊥ : &'_ mut (T) ; - b -> s@0 : bool ; - x -> s@1 : &r@0 mut (T) ; - y -> s@2 : &r@0 mut (T) ; - var@4 -> ⊥ : bool ; -} - - -- op: -copy b - -[[32mDebug[39m] Value to copy: -s@0 : bool [[32mDebug[39m] **About to evaluate statement**: [ if (move var@4) { @@ -31587,8 +63834,12 @@ s@0 : bool -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@0 := &mut *(x) +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -31603,21 +63854,14 @@ s@0 : bool b -> true ; x -> s@1 : &r@0 mut (T) ; y -> s@2 : &r@0 mut (T) ; - var@4 -> true ; + var@4 -> ⊥ : bool ; } -- op: -move var@4 -[[32mDebug[39m] Value to move: -true -[[32mDebug[39m] -**About to evaluate statement**: [ - var@0 := &mut *(x) -] +[[32mDebug[39m] expand_symbolic_value: s@1 : &r@0 mut (T) -**Context**: +- original context: # Ended regions: {} # 1 frame(s) @@ -31636,32 +63880,25 @@ true } - -[[32mDebug[39m] eval_operand: -- ctx: +- new context: # Ended regions: {} # 1 frame(s) # Frame 0: { abs@0{parents={}}{regions={0}} { - false, - proj_loans (s@1 : &r@0 mut (T)), + true, + ⌊mut@0, proj_loans (s@3 : T)⌋, proj_loans (s@2 : &r@0 mut (T)) } var@0 -> ⊥ : &'_ mut (T) ; - b -> false ; - x -> s@1 : &r@0 mut (T) ; + b -> true ; + x -> &mut@0 (s@3 : T) ; y -> s@2 : &r@0 mut (T) ; - var@4 -> false ; + var@4 -> ⊥ : bool ; } -- op: -move var@4 - -[[32mDebug[39m] Value to move: -false [[32mDebug[39m] **About to evaluate statement**: [ var@0 := move y @@ -31687,31 +63924,6 @@ false -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - abs@0{parents={}}{regions={0}} { - false, - proj_loans (s@1 : &r@0 mut (T)), - proj_loans (s@2 : &r@0 mut (T)) - } - var@0 -> ⊥ : &'_ mut (T) ; - b -> false ; - x -> s@1 : &r@0 mut (T) ; - y -> s@2 : &r@0 mut (T) ; - var@4 -> ⊥ : bool ; -} - - -- op: -move y - -[[32mDebug[39m] Value to move: -s@2 : &r@0 mut (T) [[32mDebug[39m] **About to evaluate statement**: [ return @@ -31852,38 +64064,6 @@ s@2 : &r@0 mut (T) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ y := 0: i32; @@ -31972,38 +64152,6 @@ s@2 : &r@0 mut (T) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> ⊥ : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@5 := &mut x; @@ -32429,114 +64577,14 @@ s@2 : &r@0 mut (T) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; - var@6 -> ⌊inactivated_mut@3⌋ ; - var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -true - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; - var@6 -> ⌊inactivated_mut@3⌋ ; - var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@4 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); ty = (Types.Integer Types.I32) } -[[32mDebug[39m] Value to move: -&mut@1 (0: i32) -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⌊inactivated_mut@3⌋ ; - var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@6 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); ty = (Types.Integer Types.I32) } -[[32mDebug[39m] Value to move: -&mut@3 (0: i32) [[32mDebug[39m] **About to evaluate statement**: [ var@8 := copy *(z); @@ -32631,8 +64679,9 @@ move var@6 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (i32) + +- original context: # Ended regions: {} # 1 frame(s) @@ -32666,30 +64715,7 @@ move var@6 } -- op: -copy *(z) - -[[32mDebug[39m] Value to copy: -s@1 : i32 -[[32mDebug[39m] -**About to evaluate statement**: [ - *(z) := copy var@8 + 1: i32; - var@12 := copy *(z); - var@11 := move var@12 == 1: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy x; - var@14 := move var@15 == 1: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 0: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +- new context: # Ended regions: {} # 1 frame(s) @@ -32703,7 +64729,7 @@ s@1 : i32 var@5 -> &mut@0 (⌊mut@1⌋) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> s@1 : i32 ; + var@8 -> ⊥ : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32723,10 +64749,22 @@ s@1 : i32 } - [[32mDebug[39m] **About to evaluate statement**: [ - *(z) := copy var@8 + 1: i32 + *(z) := copy var@8 + 1: i32; + var@12 := copy *(z); + var@11 := move var@12 == 1: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy x; + var@14 := move var@15 == 1: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 0: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -32764,48 +64802,12 @@ s@1 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (s@1 : i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ - } -} - - -- op: -copy var@8 +[[32mDebug[39m] +**About to evaluate statement**: [ + *(z) := copy var@8 + 1: i32 +] -[[32mDebug[39m] Value to copy: -s@1 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +**Context**: # Ended regions: {} # 1 frame(s) @@ -32839,8 +64841,6 @@ s@1 : i32 } -- op: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ @@ -32934,46 +64934,6 @@ s@1 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (s@2 : i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ - } -} - - -- op: -copy *(z) - -[[32mDebug[39m] Value to copy: -s@2 : i32 [[32mDebug[39m] **About to evaluate statement**: [ var@11 := move var@12 == 1: i32; @@ -33065,8 +65025,22 @@ s@2 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy x; + var@14 := move var@15 == 1: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 0: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -33083,8 +65057,8 @@ s@2 : i32 var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> s@2 : i32 ; + var@11 -> s@3 : bool ; + var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; @@ -33100,13 +65074,13 @@ s@2 : i32 } -- op: -move var@12 -[[32mDebug[39m] Value to move: -s@2 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -33123,7 +65097,7 @@ s@2 : i32 var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; + var@11 -> s@3 : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -33140,12 +65114,9 @@ s@2 : i32 } -- op: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ - var@10 := ¬ move var@11; assert(¬move var@10); var@15 := copy x; var@14 := move var@15 == 1: i32; @@ -33174,8 +65145,8 @@ s@2 : i32 var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> s@3 : bool ; + var@10 -> s@4 : bool ; + var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -33195,7 +65166,7 @@ s@2 : i32 [[32mDebug[39m] **About to evaluate statement**: [ - var@10 := ¬ move var@11 + assert(¬move var@10) ] **Context**: @@ -33214,44 +65185,8 @@ s@2 : i32 var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> s@3 : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ - } -} - - - -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (s@2 : i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> s@3 : bool ; + var@10 -> s@4 : bool ; + var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -33268,14 +65203,9 @@ s@2 : i32 } -- op: -move var@11 -[[32mDebug[39m] Value to move: -s@3 : bool [[32mDebug[39m] **About to evaluate statement**: [ - assert(¬move var@10); var@15 := copy x; var@14 := move var@15 == 1: i32; var@13 := ¬ move var@14; @@ -33303,7 +65233,7 @@ s@3 : bool var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> s@4 : bool ; + var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -33324,7 +65254,7 @@ s@3 : bool [[32mDebug[39m] **About to evaluate statement**: [ - assert(¬move var@10) + var@15 := copy x ] **Context**: @@ -33343,7 +65273,7 @@ s@3 : bool var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> s@4 : bool ; + var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -33362,24 +65292,24 @@ s@3 : bool -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] end_abstraction: 0 +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; + x -> ⌊mut@1⌋ ; y -> ⌊mut@2⌋ ; z -> &mut@4 (s@2 : i32) ; var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; + var@5 -> ⊥ : &'_ mut (i32) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> true ; + var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -33396,37 +65326,19 @@ s@3 : bool } } - -- op: -move var@10 - -[[32mDebug[39m] Value to move: -true -[[32mDebug[39m] -**About to evaluate statement**: [ - var@15 := copy x; - var@14 := move var@15 == 1: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 0: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[[32mDebug[39m] end_abstraction: 0 +- context after parent abstractions ended: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; + x -> ⌊mut@1⌋ ; y -> ⌊mut@2⌋ ; z -> &mut@4 (s@2 : i32) ; var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; + var@5 -> ⊥ : &'_ mut (i32) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; @@ -33448,25 +65360,19 @@ true } } - - -[[32mDebug[39m] -**About to evaluate statement**: [ - var@15 := copy x -] - -**Context**: +[[32mDebug[39m] end_abstraction: 0 +- context after loans ended: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; + x -> ⌊mut@1⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (s@2 : i32) ; + z -> ⊥ : &'_ mut (i32) ; var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; + var@5 -> ⊥ : &'_ mut (i32) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; @@ -33484,25 +65390,23 @@ true true, &mut@1 (0: i32), &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + @ended_mut_loan{ given_back=proj_borrows (s@2 : i32 <: i32); child=proj_loans (s@1 : i32) } } } - - -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] end_abstraction: 0 +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; + x -> ⌊mut@1⌋ ; y -> ⌊mut@2⌋ ; z -> &mut@4 (s@2 : i32) ; var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; + var@5 -> ⊥ : &'_ mut (i32) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (⌊mut@3⌋) ; var@8 -> s@1 : i32 ; @@ -33525,24 +65429,7 @@ true } -- op: -copy x - -[[32mDebug[39m] Value to copy: -s@5 : i32 -[[32mDebug[39m] -**About to evaluate statement**: [ - var@14 := move var@15 == 1: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 0: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +- new context: # Ended regions: {0} # 1 frame(s) @@ -33563,17 +65450,22 @@ s@5 : i32 var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; - var@15 -> s@5 : i32 ; + var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; } - - [[32mDebug[39m] **About to evaluate statement**: [ - var@14 := move var@15 == 1: i32 + var@14 := move var@15 == 1: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 0: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -33605,42 +65497,12 @@ s@5 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (s@6 : i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> s@5 : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@15 +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := move var@15 == 1: i32 +] -[[32mDebug[39m] Value to move: -s@5 : i32 -[[32mDebug[39m] eval_operand: -- ctx: +**Context**: # Ended regions: {0} # 1 frame(s) @@ -33661,15 +65523,13 @@ s@5 : i32 var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; + var@15 -> s@5 : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; } -- op: -1: i32 [[32mDebug[39m] **About to evaluate statement**: [ @@ -33745,40 +65605,6 @@ s@5 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (s@6 : i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> s@7 : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@14 - -[[32mDebug[39m] Value to move: -s@7 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@13); @@ -33852,40 +65678,6 @@ s@7 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (s@6 : i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> true ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@13 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ var@18 := copy y; @@ -33958,40 +65750,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (s@6 : i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy y - -[[32mDebug[39m] Value to copy: -s@6 : i32 [[32mDebug[39m] **About to evaluate statement**: [ var@17 := move var@18 == 0: i32; @@ -34063,72 +65821,6 @@ s@6 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> s@6 : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> s@6 : i32 ; -} - - -- op: -move var@18 - -[[32mDebug[39m] Value to move: -s@6 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> s@6 : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -0: i32 - [[32mDebug[39m] **About to evaluate statement**: [ var@16 := ¬ move var@17; @@ -34199,40 +65891,6 @@ s@6 : i32 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> s@6 : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> s@9 : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@17 - -[[32mDebug[39m] Value to move: -s@9 : bool [[32mDebug[39m] **About to evaluate statement**: [ assert(¬move var@16); @@ -34302,40 +65960,6 @@ s@9 : bool -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> s@5 : i32 ; - y -> s@6 : i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> s@1 : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> true ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@16 - -[[32mDebug[39m] Value to move: -true [[32mDebug[39m] **About to evaluate statement**: [ return @@ -34421,6 +66045,44 @@ true +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (T)) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) + } + abs@1{parents={0}}{regions={1}} { + proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; + x -> s@0 : &r@0 mut (&r@1 mut (T)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@1 mut (T))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_loan(0, proj_loans (s@1 : &r@1 mut (T))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; + x -> &mut@0 (s@1 : &r@1 mut (T)) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; +} + + [[32mDebug[39m] **About to evaluate statement**: [ var@0 := &mut *(var@2); @@ -34539,6 +66201,38 @@ true +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut ((&r@0 mut (T), u32)) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut ((&r@0 mut (T), u32))) + } + var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + x -> s@0 : &r@0 mut ((&r@0 mut (T), u32)) ; + var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : (&r@0 mut (T), u32))⌋ + } + var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + x -> &mut@0 (s@1 : (&r@0 mut (T), u32)) ; + var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; +} + + [[32mDebug[39m] **About to evaluate statement**: [ var@0 := &mut *(var@2); @@ -34669,30 +66363,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⊥ : (&'_ mut (u32), u32) ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -0: u32 - [[32mDebug[39m] **About to evaluate statement**: [ px := &mut x; @@ -34820,32 +66490,6 @@ true -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> &mut@0 (0: u32) ; - p -> ⊥ : (&'_ mut (u32), u32) ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -move px - -[[32mDebug[39m] Value to move: -&mut@0 (0: u32) [[32mDebug[39m] **About to evaluate statement**: [ (p).0 := move var@4; @@ -34908,32 +66552,6 @@ move px -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⊥ : (&'_ mut (u32), u32) ; - var@4 -> &mut@0 (0: u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -move var@4 - -[[32mDebug[39m] Value to move: -&mut@0 (0: u32) [[32mDebug[39m] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) ty: (Types.Adt (Types.Tuple, [], @@ -35001,30 +66619,6 @@ ty: (Types.Adt (Types.Tuple, [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> (&mut@0 (0: u32), ⊥ : u32) ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -1: u32 - [[32mDebug[39m] **About to evaluate statement**: [ pp0 := &mut p; @@ -35202,30 +66796,6 @@ ty: (Types.Adt (Types.Tuple, [], -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⌊inactivated_mut@2⌋ ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - - -- op: -move var@7 - [[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Adt @@ -35253,8 +66823,6 @@ move var@7 (Types.Integer Types.U32)] )) } -[[32mDebug[39m] Value to move: -&mut@2 ((&mut@0 (0: u32), 1: u32)) [[32mDebug[39m] **About to evaluate statement**: [ y := 2: u32; @@ -35320,34 +66888,6 @@ move var@7 -[[32mDebug[39m] eval_operand: -- ctx: -# Ended regions: {} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; - abs@0{parents={}}{regions={0}} { - &mut@2 ((&mut@0 (0: u32), 1: u32)), - proj_loans (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) - } -} - - -- op: -2: u32 - [[32mDebug[39m] **About to evaluate statement**: [ var@10 := &mut y; @@ -35537,8 +67077,9 @@ move var@7 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut ((&r@0 mut (u32), u32)) + +- original context: # Ended regions: {} # 1 frame(s) @@ -35553,7 +67094,7 @@ move var@7 pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@3⌋ ; - var@9 -> &mut@4 (2: u32) ; + var@9 -> ⊥ : &'_ mut (u32) ; var@10 -> &mut@3 (⌊mut@4⌋) ; abs@0{parents={}}{regions={0}} { &mut@2 ((&mut@0 (0: u32), 1: u32)), @@ -35562,18 +67103,33 @@ move var@7 } -- op: -move var@9 +- new context: +# Ended regions: {} +# 1 frame(s) -[[32mDebug[39m] Value to move: -&mut@4 (2: u32) -[[32mDebug[39m] -**About to evaluate statement**: [ - *((pp1).1) := 3: u32; - return -] +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⌊mut@1⌋ ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> &mut@1 (⌊mut@2⌋) ; + pp1 -> &mut@5 (s@1 : (&r@0 mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⌊mut@3⌋ ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> &mut@3 (⌊mut@4⌋) ; + abs@0{parents={}}{regions={0}} { + &mut@2 ((&mut@0 (0: u32), 1: u32)), + ⌊mut@5, proj_loans (s@1 : (&r@0 mut (u32), u32))⌋ + } +} -**Context**: + +[[32mDebug[39m] expand_symbolic_value: s@1 : (&r@0 mut (u32), u32) + +- original context: # Ended regions: {} # 1 frame(s) @@ -35585,22 +67141,46 @@ move var@9 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ; + pp1 -> &mut@5 (s@1 : (&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@3⌋ ; var@9 -> ⊥ : &'_ mut (u32) ; var@10 -> &mut@3 (⌊mut@4⌋) ; abs@0{parents={}}{regions={0}} { &mut@2 ((&mut@0 (0: u32), 1: u32)), - ⌊mut@5, (proj_loans (s@2 : &r@0 mut (u32)), proj_loans (s@3 : u32))⌋ + ⌊mut@5, proj_loans (s@1 : (&r@0 mut (u32), u32))⌋ } } +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⌊mut@1⌋ ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> &mut@1 (⌊mut@2⌋) ; + pp1 -> &mut@5 ((s@2 : &r@0 mut (u32), s@3 : u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⌊mut@3⌋ ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> &mut@3 (⌊mut@4⌋) ; + abs@0{parents={}}{regions={0}} { + &mut@2 ((&mut@0 (0: u32), 1: u32)), + ⌊mut@5, (proj_loans (s@2 : &r@0 mut (u32)), proj_loans (s@3 : u32))⌋ + } +} + [[32mDebug[39m] **About to evaluate statement**: [ - *((pp1).1) := 3: u32 + *((pp1).1) := 3: u32; + return ] **Context**: @@ -35628,8 +67208,12 @@ move var@9 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32 +] + +**Context**: # Ended regions: {} # 1 frame(s) @@ -35653,8 +67237,6 @@ move var@9 } -- op: -3: u32 [[32mDebug[39m] **About to evaluate statement**: [ @@ -35731,6 +67313,38 @@ move var@9 +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + x -> s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋ + } + var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + x -> &mut@0 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; +} + + [[32mDebug[39m] **About to evaluate statement**: [ var@0 := &mut *(var@2); @@ -35840,6 +67454,38 @@ move var@9 +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + x -> s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@0 mut (&r@0 mut (u32)))⌋ + } + var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + x -> &mut@0 (s@1 : &r@0 mut (&r@0 mut (u32))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; +} + + [[32mDebug[39m] **About to evaluate statement**: [ var@0 := &mut *(var@2); @@ -35967,25 +67613,27 @@ move var@9 -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : &'_ (u32) ; + var@0 -> s@0 : &'static (u32) ; x -> s@0 : &'static (u32) ; } -- op: -copy x -[[32mDebug[39m] Value to copy: -s@0 : &'static (u32) +[[32mDebug[39m] test_function_symbolic: test_char [[32mDebug[39m] **About to evaluate statement**: [ + var@0 := a; return ] @@ -35995,17 +67643,14 @@ s@0 : &'static (u32) # Frame 0: { - var@0 -> s@0 : &'static (u32) ; - x -> s@0 : &'static (u32) ; + var@0 -> ⊥ : char ; } -[[32mDebug[39m] test_function_symbolic: test_char [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := a; - return + var@0 := a ] **Context**: @@ -36021,7 +67666,7 @@ s@0 : &'static (u32) [[32mDebug[39m] **About to evaluate statement**: [ - var@0 := a + return ] **Context**: @@ -36030,27 +67675,153 @@ s@0 : &'static (u32) # Frame 0: { - var@0 -> ⊥ : char ; + var@0 -> a ; } -[[32mDebug[39m] eval_operand: -- ctx: +[[32mDebug[39m] test_function_symbolic: test_loops +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop1(2: u32); + var@4 := copy x; + var@3 := move var@4 == 2: u32; + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : char ; + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; } -- op: -a [[32mDebug[39m] **About to evaluate statement**: [ + x := move test_loop1(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy x; + var@3 := move var@4 == 2: u32; + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); return ] @@ -36060,7 +67831,6658 @@ a # Frame 0: { - var@0 -> a ; + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 == 2: u32; + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> s@0 : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@3 := move var@4 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> s@0 : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@2 := ¬ move var@3; + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> s@1 : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@2 := ¬ move var@3 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> s@1 : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@2); + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> s@2 : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@2) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> s@2 : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop2(2: u32); + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop2(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy x; + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: u32; + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> s@3 : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> s@3 : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7; + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> s@4 : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> s@4 : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@6); + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> s@5 : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@6) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> s@5 : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop3(2: u32); + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop3(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy x; + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := move var@12 == 3: u32; + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> s@6 : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := move var@12 == 3: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> s@6 : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := ¬ move var@11; + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> s@7 : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> s@7 : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@10); + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> s@8 : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@10) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> s@8 : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop4(20: u32); + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop4(20: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := copy x; + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := move var@16 == 1: u32; + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> s@9 : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := move var@16 == 1: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> s@9 : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := ¬ move var@15; + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> s@10 : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := ¬ move var@15 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> s@10 : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@14); + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> s@11 : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@14) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> s@11 : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop5(2: u32); + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop5(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@20 := copy x; + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@20 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@19 := move var@20 == 2: u32; + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> s@12 : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@19 := move var@20 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> s@12 : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@18 := ¬ move var@19; + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> s@13 : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@18 := ¬ move var@19 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> s@13 : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@18); + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> s@14 : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@18) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> s@14 : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop6(2: u32); + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := move test_loop6(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> ⊥ : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@24 := copy x; + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@24 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@23 := move var@24 == 2: u32; + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> s@15 : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@23 := move var@24 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> s@15 : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> s@16 : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@22 := ¬ move var@23 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> s@16 : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> s@17 : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@22) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> s@17 : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@0 : u32 ; + var@2 -> ⊥ : bool ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + x -> s@3 : u32 ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : u32 ; + x -> s@6 : u32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : u32 ; + x -> s@9 : u32 ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : u32 ; + x -> s@12 : u32 ; + var@18 -> ⊥ : bool ; + var@19 -> ⊥ : bool ; + var@20 -> ⊥ : u32 ; + x -> s@15 : u32 ; + var@22 -> ⊥ : bool ; + var@23 -> ⊥ : bool ; + var@24 -> ⊥ : u32 ; +} + + + +[[32mDebug[39m] test_function_symbolic: id_mut_mut_test1 +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: +{ Values.value = + (Values.Borrow + (Values.MutBorrow (<opaque>, + { Values.value = + (Values.Concrete + (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); + ty = (Types.Integer Types.I32) } + ))); + ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) } +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32; + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + + +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : 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))) + } +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (s@1 : &r@1 mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : 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))) + } +} + + +[[32mDebug[39m] expand_symbolic_value: s@1 : &r@1 mut (i32) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (s@1 : &r@1 mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : 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))) + } +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (s@2 : i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy *(px); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := copy *(px) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + +[[32mDebug[39m] end_abstraction: 0 +- context after parent abstractions ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + +[[32mDebug[39m] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 1: 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=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + +[[32mDebug[39m] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : 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)⌋) + } +} + + +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> s@3 : &r@1 mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : 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@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + +[[32mDebug[39m] expand_symbolic_value: s@3 : &r@1 mut (i32) + +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> s@3 : &r@1 mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : 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@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> s@4 : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> s@4 : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7; + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> s@5 : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> s@5 : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@6); + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> s@6 : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@6) +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> s@6 : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy x; + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy x +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + + +[[32mDebug[39m] end_abstraction: 1 +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + +[[32mDebug[39m] end_abstraction: 1 +- context after parent abstractions ended: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + +[[32mDebug[39m] end_abstraction: 1 +- context after loans ended: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@4 : i32 <: i32); child=proj_loans (s@4 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=⊥ : &r@1 mut (i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[[32mDebug[39m] end_abstraction: 1 +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@5 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + +- new context: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 1: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> s@7 : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 1: i32 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> s@7 : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> s@8 : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> s@8 : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> s@9 : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9) +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> s@9 : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] test_function_symbolic: id_mut_mut_test2 +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + ppy := move id_mut_mut<i32>(move var@5) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⌊inactivated_mut@2⌋ ; + 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 ; +} + + + +[[32mDebug[39m] activate_inactivated_mut_borrow: resulting value: +{ Values.value = + (Values.Borrow + (Values.MutBorrow (<opaque>, + { Values.value = + (Values.Concrete + (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); + ty = (Types.Integer Types.I32) } + ))); + ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) } +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> s@0 : &r@0 mut (&r@1 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> s@0 : &r@0 mut (&r@1 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + + +[[32mDebug[39m] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> s@0 : &r@0 mut (&r@1 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 ; + 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))) + } +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (s@1 : &r@1 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 ; + 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))) + } +} + + +[[32mDebug[39m] expand_symbolic_value: s@1 : &r@1 mut (i32) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (s@1 : &r@1 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 ; + 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))) + } +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (s@2 : 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + +[[32mDebug[39m] +**About to evaluate statement**: [ + y := 2: i32; + 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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + y := 2: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + py := &mut y; + 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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 2: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + py := &mut y +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> 2: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (2: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@8 := &mut *(py) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (2: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> &mut@6 (2: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(ppy) := move var@8 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@4 (1: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> &mut@6 (2: 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@6 (2: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@11 := copy *(px) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (⌊mut@2⌋) ; + ppy -> &mut@3 (&mut@6 (2: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + + +[[32mDebug[39m] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> &mut@3 (&mut@6 (2: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + +[[32mDebug[39m] end_abstraction: 0 +- context after parent abstractions ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> &mut@3 (&mut@6 (2: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + +[[32mDebug[39m] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)} } + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[[32mDebug[39m] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@2⌋ ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> &mut@3 (&mut@6 (2: i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + 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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> s@3 : &r@1 mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[[32mDebug[39m] expand_symbolic_value: s@3 : &r@1 mut (i32) + +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> s@3 : &r@1 mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + 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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> s@4 : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@10 := move var@11 == 2: i32 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> s@4 : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10; + 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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> s@5 : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@9 := ¬ move var@10 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> s@5 : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9); + *(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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> s@6 : 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@9) +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> s@6 : 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(px) := 3: i32; + 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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + *(px) := 3: i32 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (s@4 : i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy x; + 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: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@14 := copy x +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + + +[[32mDebug[39m] end_abstraction: 1 +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[[32mDebug[39m] end_abstraction: 1 +- context after parent abstractions ended: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[[32mDebug[39m] end_abstraction: 1 +- context after loans ended: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[[32mDebug[39m] end_abstraction: 1 +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@7 (3: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (⌊mut@6⌋) ; + 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 ; + 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: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : 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 ; +} + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : i32) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> s@7 : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@13 := move var@14 == 1: i32 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : i32) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> ⊥ : bool ; + var@14 -> s@7 : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : i32) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> s@9 : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@12 := ¬ move var@13 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : i32) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> ⊥ : bool ; + var@13 -> s@9 : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : i32) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> s@10 : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@12) +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : i32) ; + var@8 -> ⊥ : &'_ mut (i32) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : i32 ; + var@12 -> s@10 : bool ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : i32 ; + var@15 -> ⊥ : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@17 := copy y +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> ⌊mut@5⌋ ; + py -> &mut@5 (s@8 : 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 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> s@8 : 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 -> s@8 : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@16 := move var@17 == 3: i32 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> s@8 : 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 -> s@8 : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> s@8 : 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 -> s@11 : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + var@15 := ¬ move var@16 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> s@8 : 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 -> s@11 : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> s@8 : 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 -> s@12 : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + assert(¬move var@15) +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> s@8 : 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 -> s@12 : bool ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : i32 ; +} + + + +[[32mDebug[39m] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> s@7 : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + y -> s@8 : 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 ; } |