From 170ec21017f24d414db100c1ba31a5838f4658e5 Mon Sep 17 00:00:00 2001 From: Son Ho Date: Wed, 12 Jan 2022 20:29:01 +0100 Subject: Regenerate the trace --- tests/trace_reference.txt | 163760 +++++++++++++++++++++++++++++++------------ 1 file changed, 119614 insertions(+), 44146 deletions(-) (limited to 'tests/trace_reference.txt') diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt index 46015011..3e0483f8 100644 --- a/tests/trace_reference.txt +++ b/tests/trace_reference.txt @@ -1015,6 +1015,42 @@ fn id_mut_mut_test2() { return } +fn id_mut_mut_test3() { + var@0 : (); + x : i32; + px : &'_ mut (i32); + ppx : &'_ mut (&'_ mut (i32)); + ppy : &'_ mut (&'_ mut (i32)); + var@5 : &'_ mut (&'_ mut (i32)); + ppz : &'_ mut (&'_ mut (i32)); + var@7 : &'_ mut (&'_ mut (i32)); + var@8 : bool; + var@9 : bool; + var@10 : i32; + var@11 : bool; + var@12 : bool; + var@13 : i32; + + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return +} + [Debug] test_unit_function: test2 [Debug] **About to evaluate statement**: [ @@ -1039,17 +1075,17 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1065,20 +1101,44 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +23: u32 [Debug] **About to evaluate statement**: [ @@ -1102,17 +1162,17 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1128,21 +1188,45 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + +- op: +44: u32 + [Debug] **About to evaluate statement**: [ z := 67: u32; @@ -1164,17 +1248,17 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1190,20 +1274,44 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +67: u32 [Debug] **About to evaluate statement**: [ @@ -1225,17 +1333,17 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1251,20 +1359,44 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -1285,17 +1417,17 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> 23: u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> 23: u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1311,20 +1443,44 @@ fn id_mut_mut_test2() { # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> 23: u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> 23: u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> 23: u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +move var@5 [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (0, None)), 0)) @@ -1348,17 +1504,17 @@ ty: (Types.Adt ((Types.AdtId 0), [], # 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1374,21 +1530,45 @@ ty: (Types.Adt ((Types.AdtId 0), [], # 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + +- op: +67: u32 + [Debug] **About to evaluate statement**: [ (s as test1::Sum::Right).0 := true; @@ -1406,17 +1586,17 @@ ty: (Types.Adt ((Types.AdtId 0), [], # 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1432,21 +1612,45 @@ ty: (Types.Adt ((Types.AdtId 0), [], # 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + +- op: +true + [Debug] 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])) @@ -1466,17 +1670,17 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) # 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1492,17 +1696,17 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) # 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1522,17 +1726,17 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) # 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1548,20 +1752,44 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) # 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +3: u64 [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (2, (Some 0))), 0)) @@ -1580,17 +1808,17 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1606,17 +1834,17 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1634,17 +1862,17 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1660,17 +1888,17 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1687,17 +1915,17 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> test1::EmptyEnum::Empty ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> test1::EmptyEnum::Empty ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1713,17 +1941,17 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> test1::EmptyEnum::Empty ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> test1::EmptyEnum::Empty ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } @@ -1739,17 +1967,17 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> test1::EmptyEnum::Empty ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> test1::Enum::Variant1 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> test1::EmptyEnum::Empty ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> test1::Enum::Variant1 ; } @@ -1775,16 +2003,16 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } @@ -1800,20 +2028,66 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + + +- op: +4: u32 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + + +- op: +3: u32 + [Debug] **About to evaluate statement**: [ var@4 := copy x; @@ -1834,26 +2108,26 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -1869,29 +2143,62 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -1912,26 +2219,26 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 4: u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -1947,29 +2254,62 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 4: u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +copy y [Debug] **About to evaluate statement**: [ @@ -1989,26 +2329,26 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 3: u32 ; } @@ -2024,30 +2364,96 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 3: u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 3: u32 ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 3: u32 ; +} + + +- op: +move var@5 + [Debug] **About to evaluate statement**: [ if (move var@3) { @@ -2065,26 +2471,26 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> true ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -2105,29 +2511,62 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> true ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -2140,29 +2579,62 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -2175,26 +2647,26 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> 4: u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> 4: u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -2205,62 +2677,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> 4: u32 ; - x -> 4: u32 ; - y -> 3: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> 4: u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] ctx_pop_frame: locals to drop: [5,4,3,2,1] -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: var@3 -[Debug] drop_value: place: y -[Debug] drop_value: place: x -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } # Frame 1: { - var@0 -> 4: u32 ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> 4: u32 ; + Some (x) -> 4: u32 ; + Some (y) -> 3: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ y := move get_max(10: u32, 11: u32); @@ -2280,16 +2751,22 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -2305,19 +2782,83 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +- op: +10: u32 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + +- op: +11: u32 [Debug] **About to evaluate statement**: [ @@ -2339,26 +2880,32 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -2374,30 +2921,75 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + +- op: +copy x + [Debug] **About to evaluate statement**: [ var@5 := copy y; @@ -2417,26 +3009,32 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 10: u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 10: u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -2452,30 +3050,75 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 10: u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 10: u32 ; + Some (var@5) -> ⊥ : u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 10: u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + +- op: +copy y + [Debug] **About to evaluate statement**: [ var@3 := move var@4 >= move var@5; @@ -2494,26 +3137,32 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 10: u32 ; - var@5 -> 11: u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 10: u32 ; + Some (var@5) -> 11: u32 ; } @@ -2529,67 +3178,157 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> 10: u32 ; - var@5 -> 11: u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 10: u32 ; + Some (var@5) -> 11: u32 ; } -[Debug] -**About to evaluate statement**: [ - if (move var@3) { - var@0 := copy x - } - else { - var@0 := copy y - }; - return -] +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 10: u32 ; + Some (var@5) -> 11: u32 ; +} + + +- op: +move var@4 + +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> false ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 11: u32 ; +} + + +- op: +move var@5 + +[Debug] +**About to evaluate statement**: [ + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -2610,29 +3349,74 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> false ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -2645,30 +3429,75 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> ⊥ : u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; +} + + +- op: +copy y + [Debug] **About to evaluate statement**: [ return @@ -2680,26 +3509,32 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> 11: u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> 11: u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } @@ -2710,62 +3545,73 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> 11: u32 ; - x -> 10: u32 ; - y -> 11: u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> 11: u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] ctx_pop_frame: locals to drop: [5,4,3,2,1] -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: var@3 -[Debug] drop_value: place: y -[Debug] drop_value: place: x -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } # Frame 1: { - var@0 -> 11: u32 ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> 11: u32 ; + Some (x) -> 10: u32 ; + Some (y) -> 11: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ var@4 := copy x; @@ -2784,16 +3630,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -2809,19 +3667,66 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -2840,16 +3745,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -2865,20 +3782,67 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + +- op: +copy y + [Debug] **About to evaluate statement**: [ z := copy var@4 + copy var@5; @@ -2895,16 +3859,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -2920,20 +3896,102 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + +- op: +copy var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + +- op: +copy var@5 + [Debug] **About to evaluate statement**: [ var@9 := copy z; @@ -2949,16 +4007,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -2974,19 +4044,66 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +- op: +copy z [Debug] **About to evaluate statement**: [ @@ -3002,16 +4119,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 15: u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -3027,20 +4156,102 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 15: u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 15: u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + +- op: +move var@9 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + +- op: +15: u32 + [Debug] **About to evaluate statement**: [ var@7 := ¬ move var@8; @@ -3054,16 +4265,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -3079,19 +4302,66 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +- op: +move var@8 [Debug] **About to evaluate statement**: [ @@ -3105,16 +4375,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -3130,19 +4412,66 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -3155,16 +4484,28 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 4: u32 ; + Some (y) -> 11: u32 ; + Some (z) -> 15: u32 ; + Some (var@4) -> 4: u32 ; + Some (var@5) -> 11: u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 4: u32 ; + None -> 3: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 10: u32 ; + None -> 11: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; } @@ -3183,9 +4524,9 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; } @@ -3201,13 +4542,29 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; +} + + +- op: +3: i32 + [Debug] **About to evaluate statement**: [ y := -3: i32; @@ -3220,9 +4577,9 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> ⊥ : i32 ; } @@ -3238,13 +4595,29 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> ⊥ : i32 ; +} + + +- op: +-3: i32 + [Debug] **About to evaluate statement**: [ return @@ -3256,9 +4629,9 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> -3: i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> -3: i32 ; } @@ -3283,13 +4656,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3305,16 +4678,36 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +0: i32 [Debug] **About to evaluate statement**: [ @@ -3334,13 +4727,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3356,13 +4749,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3384,13 +4777,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> &mut@0 (0: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3406,13 +4799,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> &mut@0 (0: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3433,13 +4826,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3455,16 +4848,36 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ @@ -3481,13 +4894,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3503,17 +4916,162 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + +- op: +copy x + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterBorrows (InterpreterBorrowsCore.Borrow 1)) +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 1 +- content: &mut@1 (&mut@0 (1: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + +[Debug] give_back_value: +- bid: 1 +- value: &mut@0 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + +[Debug] give_back_value: +- bid: 0 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + [Debug] **About to evaluate statement**: [ var@5 := move var@6 == 1: i32; @@ -3528,13 +5086,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> 1: i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> 1: i32 ; } @@ -3550,16 +5108,56 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> 1: i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> 1: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> 1: i32 ; +} + + +- op: +move var@6 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ @@ -3574,13 +5172,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> true ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> true ; + Some (var@6) -> ⊥ : i32 ; } @@ -3596,16 +5194,36 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> true ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> true ; + Some (var@6) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> true ; + Some (var@6) -> ⊥ : i32 ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -3619,13 +5237,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> false ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3641,17 +5259,37 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> false ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + +- op: +move var@4 + [Debug] **About to evaluate statement**: [ return @@ -3663,13 +5301,13 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -3710,25 +5348,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -3744,28 +5382,60 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +0: i32 [Debug] **About to evaluate statement**: [ @@ -3801,25 +5471,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -3835,29 +5505,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +1: i32 + [Debug] **About to evaluate statement**: [ px := &mut x; @@ -3891,25 +5593,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 1: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -3925,25 +5627,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 1: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -3980,25 +5682,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 1: i32 ; - px -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 1: i32 ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4014,25 +5716,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 1: i32 ; - px -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 1: i32 ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4068,25 +5770,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> &mut@0 (0: i32) ; - py -> &mut@1 (1: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4102,25 +5804,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> &mut@0 (0: i32) ; - py -> &mut@1 (1: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4155,25 +5857,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (1: i32) ; - ppx -> &mut@2 (&mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4189,25 +5891,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (1: i32) ; - ppx -> &mut@2 (&mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4241,25 +5943,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> &mut@3 (1: i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4275,28 +5977,156 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> &mut@3 (1: i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> &mut@3 (1: i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@6 + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (⊥ : &'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> &mut@3 (1: i32) ; + None -> &mut@0 (0: i32) ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (0: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (⊥ : &'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> &mut@3 (1: i32) ; + None -> ⊥ : &'_ mut (i32) ; +} + + +[Debug] give_back_value: +- bid: 0 +- value: 0: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (⊥ : &'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> &mut@3 (1: i32) ; + None -> ⊥ : &'_ mut (i32) ; +} + [Debug] **About to evaluate statement**: [ @@ -4326,25 +6156,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (1: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4360,28 +6190,60 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (1: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (1: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ @@ -4410,25 +6272,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4444,29 +6306,151 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +copy *(px) + +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 2 +- content: &mut@2 (&mut@3 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +[Debug] give_back_value: +- bid: 2 +- value: &mut@3 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + [Debug] **About to evaluate statement**: [ var@8 := move var@9 == 2: i32; @@ -4493,25 +6477,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 2: i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4527,29 +6511,93 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 2: i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 2: i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@9 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +2: i32 + [Debug] **About to evaluate statement**: [ var@7 := ¬ move var@8; @@ -4575,25 +6623,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4609,29 +6657,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@8 + [Debug] **About to evaluate statement**: [ assert(¬move var@7); @@ -4656,25 +6736,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4690,29 +6770,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@7 + [Debug] **About to evaluate statement**: [ var@12 := copy x; @@ -4736,25 +6848,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4770,29 +6882,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +copy x + [Debug] **About to evaluate statement**: [ var@11 := move var@12 == 0: i32; @@ -4815,25 +6959,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 0: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4849,28 +6993,92 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 0: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 0: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@12 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +0: i32 [Debug] **About to evaluate statement**: [ @@ -4893,25 +7101,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -4927,28 +7135,60 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@11 [Debug] **About to evaluate statement**: [ @@ -4970,25 +7210,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5004,29 +7244,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@10 + [Debug] **About to evaluate statement**: [ var@15 := copy *(py); @@ -5046,25 +7318,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5080,28 +7352,150 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +copy *(py) + +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 3 +- content: &mut@3 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +[Debug] give_back_value: +- bid: 3 +- value: 2: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + [Debug] **About to evaluate statement**: [ @@ -5121,25 +7515,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 2: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5155,28 +7549,92 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 2: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 2: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@15 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ @@ -5195,25 +7653,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> true ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5229,28 +7687,60 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> true ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> true ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@14 [Debug] **About to evaluate statement**: [ @@ -5268,25 +7758,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> false ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5302,29 +7792,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> false ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> false ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@13 + [Debug] **About to evaluate statement**: [ var@18 := copy y; @@ -5340,25 +7862,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5374,28 +7896,150 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +copy y + +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 1 +- content: &mut@1 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +[Debug] give_back_value: +- bid: 1 +- value: 2: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + [Debug] **About to evaluate statement**: [ @@ -5411,25 +8055,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 2: i32 ; } @@ -5445,29 +8089,93 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 2: i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 2: i32 ; +} + + +- op: +move var@18 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +2: i32 + [Debug] **About to evaluate statement**: [ var@16 := ¬ move var@17; @@ -5481,25 +8189,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> true ; + Some (var@18) -> ⊥ : i32 ; } @@ -5515,29 +8223,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> true ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> true ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@17 + [Debug] **About to evaluate statement**: [ assert(¬move var@16); @@ -5550,25 +8290,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> false ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5584,29 +8324,61 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> false ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> false ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@16 + [Debug] **About to evaluate statement**: [ return @@ -5618,25 +8390,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -5659,10 +8431,10 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } @@ -5678,10 +8450,10 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } @@ -5702,10 +8474,10 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; } @@ -5721,10 +8493,10 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; } @@ -5734,44 +8506,87 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) - type_params: [test1::List] - args: [move var@3] - dest: var@2 +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; +} + + +- op: +move var@3 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (@return) -> ⊥ : std::boxed::Box> ; + Some (var@1) -> test1::List::Nil ; +} + + +- op: +move var@1 + [Debug] ctx_pop_frame: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } # Frame 1: { - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List ; + Some (@return) -> @Box(test1::List::Nil) ; + Some (var@1) -> ⊥ : test1::List ; } -[Debug] ctx_pop_frame: locals to drop: [1] -[Debug] drop_value: place: var@1 -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } # Frame 1: { - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List ; + Some (@return) -> @Box(test1::List::Nil) ; + Some (var@1) -> ⊥ : test1::List ; } + +- op: +move @return + [Debug] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -5787,10 +8602,12 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -5806,14 +8623,35 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + +- op: +0: i32 + [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -5831,10 +8669,12 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -5850,14 +8690,35 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + +- op: +move var@2 + [Debug] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -5871,10 +8732,12 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -5890,10 +8753,12 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -5910,10 +8775,12 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -5929,10 +8796,12 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -5949,10 +8818,12 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -5980,15 +8851,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } @@ -6004,15 +8875,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } @@ -6022,54 +8893,107 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) - type_params: [i32] - args: [0: i32] - dest: b +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (@return) -> ⊥ : std::boxed::Box ; + Some (var@1) -> 0: i32 ; +} + + +- op: +move var@1 + [Debug] ctx_pop_frame: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } # Frame 1: { - @return -> @Box(0: i32) ; - var@1 -> ⊥ : i32 ; + Some (@return) -> @Box(0: i32) ; + Some (var@1) -> ⊥ : i32 ; } -[Debug] ctx_pop_frame: locals to drop: [1] -[Debug] drop_value: place: var@1 -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } # Frame 1: { - @return -> @Box(0: i32) ; - var@1 -> ⊥ : i32 ; + Some (@return) -> @Box(0: i32) ; + Some (var@1) -> ⊥ : i32 ; } + +- op: +move @return + [Debug] **About to evaluate statement**: [ var@3 := &two-phase b; @@ -6091,15 +9015,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(0: i32) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @Box(0: i32) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; } @@ -6115,15 +9041,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(0: i32) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @Box(0: i32) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; } @@ -6148,15 +9076,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({0}, @Box(0: i32)) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⌊inactivated_mut@0⌋ ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; } @@ -6172,15 +9102,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({0}, @Box(0: i32)) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⌊inactivated_mut@0⌋ ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; } @@ -6191,66 +9123,86 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) - args: [move var@3] - dest: x [Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Adt - { Values.variant_id = ; - field_values = - [{ Values.value = - (Values.Concrete - (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); - ty = (Types.Integer Types.I32) } - ] - }); - ty = - (Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) } +@Box(0: i32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> &mut@0 (@Box(0: i32)) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; +} + + +- op: +move var@3 + [Debug] ctx_pop_frame: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; } # Frame 1: { - @return -> &mut@1 (0: i32) ; - var@1 -> &mut@0 (@Box(⌊mut@1⌋)) ; + Some (@return) -> &mut@1 (0: i32) ; + Some (var@1) -> &mut@0 (@Box(⌊mut@1⌋)) ; } -[Debug] ctx_pop_frame: locals to drop: [1] -[Debug] drop_value: place: var@1 -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; } # Frame 1: { - @return -> &mut@1 (0: i32) ; - var@1 -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (@return) -> &mut@1 (0: i32) ; + Some (var@1) -> &mut@0 (@Box(⌊mut@1⌋)) ; } + +- op: +move @return + [Debug] **About to evaluate statement**: [ *(x) := 1: i32; @@ -6270,15 +9222,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> &mut@1 (0: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (0: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; } @@ -6294,19 +9250,49 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> &mut@1 (0: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (0: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (0: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; +} + + +- op: +1: i32 + [Debug] **About to evaluate statement**: [ var@5 := &b; @@ -6325,15 +9311,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> &mut@1 (1: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; } @@ -6349,18 +9339,189 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> &mut@1 (1: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; +} + + + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; +} + +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 1)) +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; +} + +[Debug] give_back: +- bid: 1 +- content: &mut@1 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; +} + + +[Debug] give_back_value: +- bid: 1 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(⌊mut@1⌋)) ; } +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@0 (@Box(1: i32)) ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (@Box(1: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; +} + + +[Debug] give_back_value: +- bid: 0 +- value: @Box(1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; +} + [Debug] **About to evaluate statement**: [ @@ -6379,15 +9540,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, @Box(1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⌊shared@2⌋ ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(1: i32)) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⌊shared@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; } @@ -6403,15 +9568,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, @Box(1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⌊shared@2⌋ ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(1: i32)) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⌊shared@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; } @@ -6421,54 +9590,91 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) - type_params: [i32] - args: [move var@5] - dest: x +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(1: i32)) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⌊shared@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; +} + + +- op: +move var@5 + [Debug] ctx_pop_frame: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; } # Frame 1: { - @return -> ⌊shared@3⌋ ; - var@1 -> ⌊shared@2⌋ ; + Some (@return) -> ⌊shared@3⌋ ; + Some (var@1) -> ⌊shared@2⌋ ; } -[Debug] ctx_pop_frame: locals to drop: [1] -[Debug] drop_value: place: var@1 -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; } # Frame 1: { - @return -> ⌊shared@3⌋ ; - var@1 -> ⊥ : &'_ (std::boxed::Box) ; + Some (@return) -> ⌊shared@3⌋ ; + Some (var@1) -> ⌊shared@2⌋ ; } + +- op: +move @return + [Debug] **About to evaluate statement**: [ var@8 := copy *(x); @@ -6485,15 +9691,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } @@ -6509,18 +9721,52 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } +- op: +copy *(x) [Debug] **About to evaluate statement**: [ @@ -6537,15 +9783,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> 1: i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } @@ -6561,19 +9813,81 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> 1: i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; +} + + +- op: +1: i32 + [Debug] **About to evaluate statement**: [ var@6 := ¬ move var@7; @@ -6588,15 +9902,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> true ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } @@ -6612,19 +9932,53 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> true ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; +} + + +- op: +move var@7 + [Debug] **About to evaluate statement**: [ assert(¬move var@6); @@ -6638,15 +9992,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> false ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } @@ -6662,18 +10022,52 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> false ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -6687,15 +10081,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } @@ -6711,20 +10111,132 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; } [Debug] drop_value: place: b +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⌊shared@2⌋ ; + None -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; +} + +[Debug] give_back: +- bid: 2 +- content: ⌊shared@2⌋ +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⊥ : &'_ (std::boxed::Box) ; + None -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; +} + + +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⊥ : &'_ (std::boxed::Box) ; + None -> @Box(@shared_loan({3}, 1: i32)) ; +} + +[Debug] give_back: +- bid: 3 +- content: ⌊shared@3⌋ +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⊥ : &'_ (std::boxed::Box) ; + None -> @Box(@shared_loan({3}, 1: i32)) ; +} + + [Debug] **About to evaluate statement**: [ return @@ -6736,15 +10248,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box ; + None -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (std::boxed::Box) ; + None -> ⊥ : &'_ (i32) ; + None -> ⊥ : &'_ (std::boxed::Box) ; } @@ -6770,15 +10288,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } @@ -6794,19 +10312,41 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; +} + + +- op: +0: i32 + [Debug] **About to evaluate statement**: [ px := &x; @@ -6826,15 +10366,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ (i32) ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } @@ -6850,15 +10390,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ (i32) ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } @@ -6881,15 +10421,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } @@ -6905,19 +10445,41 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; +} + + +- op: +copy x + [Debug] **About to evaluate statement**: [ y := move copy_int(move var@4); @@ -6935,15 +10497,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> 0: i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } @@ -6959,18 +10521,40 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> 0: i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> 0: i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -6984,21 +10568,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : i32 ; - x -> 0: i32 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> 0: i32 ; } @@ -7014,25 +10598,53 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : i32 ; - x -> 0: i32 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> 0: i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : i32 ; + Some (x) -> 0: i32 ; +} + + +- op: +copy x + [Debug] **About to evaluate statement**: [ return @@ -7044,21 +10656,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> 0: i32 ; - x -> 0: i32 ; + Some (var@0) -> 0: i32 ; + Some (x) -> 0: i32 ; } @@ -7069,48 +10681,51 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> 0: i32 ; - x -> 0: i32 ; + Some (var@0) -> 0: i32 ; + Some (x) -> 0: i32 ; } -[Debug] ctx_pop_frame: locals to drop: [1] -[Debug] drop_value: place: x -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> 0: i32 ; - x -> ⊥ : i32 ; + Some (var@0) -> 0: i32 ; + Some (x) -> 0: i32 ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ var@7 := copy *(px); @@ -7127,15 +10742,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } @@ -7151,18 +10768,44 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } +- op: +copy *(px) [Debug] **About to evaluate statement**: [ @@ -7179,15 +10822,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } @@ -7203,18 +10848,44 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } +- op: +copy y [Debug] **About to evaluate statement**: [ @@ -7230,15 +10901,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> 0: i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } @@ -7254,19 +10927,69 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> 0: i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> 0: i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; +} + + +- op: +move var@7 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> 0: i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; +} + + +- op: +move var@8 + [Debug] **About to evaluate statement**: [ var@5 := ¬ move var@6; @@ -7280,15 +11003,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> true ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } @@ -7304,18 +11029,44 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> true ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> true ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -7329,15 +11080,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> false ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } @@ -7353,18 +11106,44 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> false ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> false ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -7377,15 +11156,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> 0: i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; + None -> ⊥ : i32 ; + None -> 0: i32 ; } @@ -7413,14 +11194,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } @@ -7436,14 +11217,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } @@ -7469,14 +11250,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } @@ -7492,14 +11273,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } @@ -7509,52 +11290,103 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) - type_params: [test1::List] - args: [move var@3] - dest: var@2 +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; +} + + +- op: +move var@3 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; +} + +# Frame 1: +{ + Some (@return) -> ⊥ : std::boxed::Box> ; + Some (var@1) -> test1::List::Nil ; +} + + +- op: +move var@1 + [Debug] ctx_pop_frame: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } # Frame 1: { - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List ; + Some (@return) -> @Box(test1::List::Nil) ; + Some (var@1) -> ⊥ : test1::List ; } -[Debug] ctx_pop_frame: locals to drop: [1] -[Debug] drop_value: place: var@1 -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } # Frame 1: { - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List ; + Some (@return) -> @Box(test1::List::Nil) ; + Some (var@1) -> ⊥ : test1::List ; } + +- op: +move @return + [Debug] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -7575,14 +11407,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7598,17 +11432,42 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +- op: +0: i32 [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) @@ -7632,14 +11491,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7655,18 +11516,43 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + +- op: +move var@2 + [Debug] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -7685,14 +11571,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7708,14 +11596,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7737,14 +11627,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7760,14 +11652,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7788,14 +11682,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7811,17 +11707,42 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +- op: +copy var@7 [Debug] **About to evaluate statement**: [ @@ -7838,14 +11759,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⌊shared@1⌋ ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⌊shared@1⌋ ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -7861,17 +11784,42 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⌊shared@1⌋ ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⌊shared@1⌋ ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⌊shared@1⌋ ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -7896,21 +11844,23 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : bool ; - l -> ⌊shared@1⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> ⊥ : isize ; } @@ -7926,21 +11876,23 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : bool ; - l -> ⌊shared@1⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> ⊥ : isize ; } @@ -7967,21 +11919,23 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : bool ; - l -> ⌊shared@1⌋ ; - var@2 -> 0: isize ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> 0: isize ; } @@ -8007,24 +11961,56 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> 0: isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : bool ; - l -> ⌊shared@1⌋ ; - var@2 -> 0: isize ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> 0: isize ; } +- op: +move var@2 [Debug] **About to evaluate statement**: [ @@ -8037,24 +12023,56 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : bool ; - l -> ⌊shared@1⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> ⊥ : isize ; } +- op: +true [Debug] **About to evaluate statement**: [ @@ -8067,21 +12085,23 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> true ; - l -> ⌊shared@1⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> true ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> ⊥ : isize ; } @@ -8092,49 +12112,55 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> true ; - l -> ⌊shared@1⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> true ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> ⊥ : isize ; } -[Debug] ctx_pop_frame: locals to drop: [2,1] -[Debug] drop_value: place: var@2 -[Debug] drop_value: place: l -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> true ; - l -> ⊥ : &'_ (test1::List) ; - var@2 -> ⊥ : isize ; + Some (var@0) -> true ; + Some (l) -> ⌊shared@1⌋ ; + Some (var@2) -> ⊥ : isize ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ var@4 := ¬ move var@5; @@ -8149,14 +12175,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> true ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> true ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; } @@ -8172,17 +12203,48 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> true ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> true ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> true ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -8197,14 +12259,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> false ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; } @@ -8220,17 +12287,48 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> false ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; } +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -8244,14 +12342,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; } @@ -8267,19 +12370,122 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; } [Debug] drop_value: place: l +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; + None -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; +} + +[Debug] give_back: +- bid: 0 +- content: ⌊shared@0⌋ +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; + None -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; +} + + +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⌊shared@1⌋ ; + None -> ⊥ : isize ; + None -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; +} + +[Debug] give_back: +- bid: 1 +- content: ⌊shared@1⌋ +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : isize ; + None -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; +} + + [Debug] **About to evaluate statement**: [ return @@ -8291,14 +12497,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : bool ; + None -> ⊥ : &'_ (test1::List) ; + None -> ⊥ : isize ; } @@ -8329,17 +12540,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; } @@ -8355,17 +12566,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; } @@ -8394,17 +12605,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; } @@ -8420,17 +12631,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; } @@ -8440,58 +12651,115 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) - type_params: [test1::List] - args: [move var@3] - dest: var@2 +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move var@3 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (@return) -> ⊥ : std::boxed::Box> ; + Some (var@1) -> test1::List::Nil ; +} + + +- op: +move var@1 + [Debug] ctx_pop_frame: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; } # Frame 1: { - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List ; + Some (@return) -> @Box(test1::List::Nil) ; + Some (var@1) -> ⊥ : test1::List ; } -[Debug] ctx_pop_frame: locals to drop: [1] -[Debug] drop_value: place: var@1 -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; } # Frame 1: { - @return -> @Box(test1::List::Nil) ; - var@1 -> ⊥ : test1::List ; + Some (@return) -> @Box(test1::List::Nil) ; + Some (var@1) -> ⊥ : test1::List ; } + +- op: +move @return + [Debug] **About to evaluate statement**: [ (l as test1::List::Cons).0 := 0: i32; @@ -8515,17 +12783,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -8541,21 +12811,49 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + +- op: +0: i32 + [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) @@ -8581,17 +12879,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -8607,20 +12907,48 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> @Box(test1::List::Nil) ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> @Box(test1::List::Nil) ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +- op: +move var@2 [Debug] **About to evaluate statement**: [ @@ -8643,17 +12971,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -8669,17 +12999,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -8704,17 +13036,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -8730,21 +13064,49 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + +- op: +move l + [Debug] **About to evaluate statement**: [ var@6 := move split_list(move var@7); @@ -8764,17 +13126,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } @@ -8790,21 +13154,49 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + + +- op: +move var@7 + [Debug] **About to evaluate statement**: [ var@8 := false; @@ -8837,32 +13229,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -8878,35 +13272,78 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +false [Debug] **About to evaluate statement**: [ @@ -8939,32 +13376,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -8980,36 +13419,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +false + [Debug] **About to evaluate statement**: [ var@7 := true; @@ -9040,32 +13522,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9081,36 +13565,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +true + [Debug] **About to evaluate statement**: [ var@8 := true; @@ -9140,32 +13667,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9181,36 +13710,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +true + [Debug] **About to evaluate statement**: [ var@2 := discriminant(l); @@ -9239,32 +13811,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9280,32 +13854,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9337,35 +13913,78 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> 0: isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> 0: isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> 0: isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +move var@2 [Debug] **About to evaluate statement**: [ @@ -9387,32 +14006,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9428,36 +14049,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +false + [Debug] **About to evaluate statement**: [ hd := move (l as test1::List::Cons).0; @@ -9477,32 +14141,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9518,36 +14184,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move (l as test1::List::Cons).0 + [Debug] **About to evaluate statement**: [ var@7 := false; @@ -9566,32 +14275,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9607,36 +14318,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +false + [Debug] **About to evaluate statement**: [ tl := move (l as test1::List::Cons).1; @@ -9654,32 +14408,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9695,36 +14451,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move (l as test1::List::Cons).1 + [Debug] **About to evaluate statement**: [ var@5 := move hd; @@ -9741,32 +14540,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> @Box(test1::List::Nil) ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> @Box(test1::List::Nil) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9782,35 +14583,78 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> @Box(test1::List::Nil) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> 0: i32 ; - tl -> @Box(test1::List::Nil) ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> 0: i32 ; + Some (tl) -> @Box(test1::List::Nil) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +move hd [Debug] **About to evaluate statement**: [ @@ -9827,32 +14671,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(test1::List::Nil) ; - var@5 -> 0: i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(test1::List::Nil) ; + Some (var@5) -> 0: i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9868,36 +14714,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(test1::List::Nil) ; - var@5 -> 0: i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(test1::List::Nil) ; + Some (var@5) -> 0: i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(test1::List::Nil) ; + Some (var@5) -> 0: i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move deref_box(tl) + [Debug] **About to evaluate statement**: [ (var@0).0 := move var@5; @@ -9912,32 +14801,34 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> 0: i32 ; - var@6 -> test1::List::Nil ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> 0: i32 ; + Some (var@6) -> test1::List::Nil ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -9953,36 +14844,79 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> ⊥ : (i32, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> 0: i32 ; - var@6 -> test1::List::Nil ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> 0: i32 ; + Some (var@6) -> test1::List::Nil ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : (i32, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> 0: i32 ; + Some (var@6) -> test1::List::Nil ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move var@5 + [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) ty: (Types.Adt (Types.Tuple, [], @@ -10002,32 +14936,34 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> (0: i32, ⊥ : test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : i32 ; - var@6 -> test1::List::Nil ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> (0: i32, ⊥ : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> test1::List::Nil ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -10043,35 +14979,78 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; +} + +# Frame 1: +{ + Some (var@0) -> (0: i32, ⊥ : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> test1::List::Nil ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> (0: i32, ⊥ : test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : i32 ; - var@6 -> test1::List::Nil ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> (0: i32, ⊥ : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> test1::List::Nil ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -10085,32 +15064,34 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> (0: i32, test1::List::Nil) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> (0: i32, test1::List::Nil) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -10126,32 +15107,34 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> (0: i32, test1::List::Nil) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> (0: i32, test1::List::Nil) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } @@ -10173,32 +15156,34 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> (0: i32, test1::List::Nil) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> (0: i32, test1::List::Nil) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> () ; + Some (var@10) -> ⊥ : isize ; } @@ -10209,79 +15194,77 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> (0: i32, test1::List::Nil) ; - l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> (0: i32, test1::List::Nil) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> () ; + Some (var@10) -> ⊥ : isize ; } -[Debug] ctx_pop_frame: locals to drop: [10,9,8,7,6,5,4,3,2,1] -[Debug] drop_value: place: var@10 -[Debug] drop_value: place: var@9 -[Debug] drop_value: place: var@8 -[Debug] drop_value: place: var@7 -[Debug] drop_value: place: var@6 -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: tl -[Debug] drop_value: place: hd -[Debug] drop_value: place: var@2 -[Debug] drop_value: place: l -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; } # Frame 1: { - var@0 -> (0: i32, test1::List::Nil) ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : i32 ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : i32 ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> (0: i32, test1::List::Nil) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : i32 ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> () ; + Some (var@10) -> ⊥ : isize ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ hd := copy (var@6).0; @@ -10300,17 +15283,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (0: i32, test1::List::Nil) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (0: i32, test1::List::Nil) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10326,21 +15322,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (0: i32, test1::List::Nil) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (0: i32, test1::List::Nil) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (0: i32, test1::List::Nil) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; +} + + +- op: +copy (var@6).0 + [Debug] **About to evaluate statement**: [ tl := move (var@6).1; @@ -10358,17 +15404,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (0: i32, test1::List::Nil) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (0: i32, test1::List::Nil) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10384,20 +15443,70 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (0: i32, test1::List::Nil) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (0: i32, test1::List::Nil) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (0: i32, test1::List::Nil) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } +- op: +move (var@6).1 [Debug] **About to evaluate statement**: [ @@ -10415,17 +15524,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10441,20 +15563,70 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } +- op: +copy hd [Debug] **About to evaluate statement**: [ @@ -10471,17 +15643,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> 0: i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> 0: i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10497,21 +15682,108 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> 0: i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> 0: i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> 0: i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; +} + + +- op: +move var@10 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; +} + + +- op: +0: i32 + [Debug] **About to evaluate statement**: [ var@8 := ¬ move var@9; @@ -10526,17 +15798,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> true ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10552,20 +15837,70 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> true ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -10580,17 +15915,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> false ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10606,21 +15954,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> false ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; +} + + +- op: +move var@8 + [Debug] **About to evaluate statement**: [ drop(tl); @@ -10633,17 +16031,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10659,17 +16070,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> test1::List::Nil ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> test1::List::Nil ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10686,17 +16110,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> 0: i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (0: i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> 0: i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (0: i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : test1::List ; + None -> ⊥ : (i32, test1::List) ; + None -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box>; } ; + None -> ⊥ : isize ; + None -> ⊥ : i32 ; + None -> ⊥ : std::boxed::Box> ; + None -> ⊥ : i32 ; + None -> ⊥ : test1::List ; + None -> false ; + None -> false ; + None -> () ; + None -> ⊥ : isize ; } @@ -10734,25 +16171,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -10768,29 +16205,61 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +0: i32 + [Debug] **About to evaluate statement**: [ y := 0: i32; @@ -10822,25 +16291,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -10856,28 +16325,60 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +0: i32 [Debug] **About to evaluate statement**: [ @@ -10909,25 +16410,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -10943,25 +16444,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -10995,25 +16496,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (0: i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -11029,25 +16530,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (0: i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -11080,25 +16581,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -11114,25 +16615,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -11164,25 +16665,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⊥ : &'_ 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (0: i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -11198,25 +16699,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⊥ : &'_ 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (0: i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -11247,25 +16748,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⌊inactivated_mut@3⌋ ; + Some (var@7) -> &mut@2 (@shared_loan({3}, 0: i32)) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } @@ -11281,37 +16782,129 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⌊inactivated_mut@3⌋ ; + Some (var@7) -> &mut@2 (@shared_loan({3}, 0: i32)) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); - ty = (Types.Integer Types.I32) } +0: i32 [Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); - ty = (Types.Integer Types.I32) } +0: i32 +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> &mut@1 (0: i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> &mut@3 (0: i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +true + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> &mut@1 (0: i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> &mut@3 (0: i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> &mut@3 (0: i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@6 + [Debug] **About to evaluate statement**: [ var@4 := copy b; @@ -11330,34 +16923,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (i32) ; - b -> true ; - x -> &mut@1 (0: i32) ; - y -> &mut@3 (0: i32) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : &'_ mut (i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (0: i32) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> ⊥ : bool ; } @@ -11373,37 +16966,78 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (0: i32) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (i32) ; - b -> true ; - x -> &mut@1 (0: i32) ; - y -> &mut@3 (0: i32) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : &'_ mut (i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (0: i32) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> ⊥ : bool ; } +- op: +copy b [Debug] **About to evaluate statement**: [ @@ -11422,34 +17056,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (i32) ; - b -> true ; - x -> &mut@1 (0: i32) ; - y -> &mut@3 (0: i32) ; - var@4 -> true ; + Some (var@0) -> ⊥ : &'_ mut (i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (0: i32) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> true ; } @@ -11470,38 +17104,79 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (i32) ; - b -> true ; - x -> &mut@1 (0: i32) ; - y -> &mut@3 (0: i32) ; - var@4 -> true ; + Some (var@0) -> ⊥ : &'_ mut (i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (0: i32) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> true ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (0: i32) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> true ; +} + + +- op: +move var@4 + [Debug] **About to evaluate statement**: [ var@0 := &mut *(x) @@ -11513,34 +17188,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (i32) ; - b -> true ; - x -> &mut@1 (0: i32) ; - y -> &mut@3 (0: i32) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : &'_ mut (i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (0: i32) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> ⊥ : bool ; } @@ -11556,34 +17231,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> &mut@4 (0: i32) ; - b -> true ; - x -> &mut@1 (⌊mut@4⌋) ; - y -> &mut@3 (0: i32) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> &mut@4 (0: i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (⌊mut@4⌋) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> ⊥ : bool ; } @@ -11594,77 +17269,77 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> &mut@4 (0: i32) ; - b -> true ; - x -> &mut@1 (⌊mut@4⌋) ; - y -> &mut@3 (0: i32) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> &mut@4 (0: i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (⌊mut@4⌋) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> ⊥ : bool ; } -[Debug] ctx_pop_frame: locals to drop: [4,3,2,1] -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: y -[Debug] drop_value: place: x -[Debug] drop_value: place: b -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> &mut@4 (0: i32) ; - b -> ⊥ : bool ; - x -> ⊥ : &'_ mut (i32) ; - y -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> &mut@4 (0: i32) ; + Some (b) -> true ; + Some (x) -> &mut@1 (⌊mut@4⌋) ; + Some (y) -> &mut@3 (0: i32) ; + Some (var@4) -> ⊥ : bool ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ var@8 := copy *(z); @@ -11690,25 +17365,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (0: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -11724,29 +17404,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (0: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (0: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +copy *(z) + [Debug] **About to evaluate statement**: [ *(z) := copy var@8 + 1: i32; @@ -11771,25 +17493,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (0: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -11805,28 +17532,107 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (0: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (0: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +- op: +copy var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (0: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +1: i32 [Debug] **About to evaluate statement**: [ @@ -11851,25 +17657,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -11885,29 +17696,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +copy *(z) + [Debug] **About to evaluate statement**: [ var@11 := move var@12 == 1: i32; @@ -11930,25 +17783,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 1: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -11964,28 +17822,107 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 1: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 1: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +- op: +move var@12 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +1: i32 [Debug] **About to evaluate statement**: [ @@ -12008,25 +17945,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -12042,29 +17984,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +move var@11 + [Debug] **About to evaluate statement**: [ assert(¬move var@10); @@ -12085,25 +18069,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -12119,29 +18108,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +move var@10 + [Debug] **About to evaluate statement**: [ var@15 := copy x; @@ -12161,25 +18192,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -12195,28 +18231,453 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +- op: +copy x + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 1)) +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4)) +[Debug] end borrow: 4: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (1: i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + +[Debug] give_back: +- bid: 4 +- content: &mut@4 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +[Debug] give_back_value: +- bid: 4 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (⌊mut@4⌋) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> &mut@1 (1: i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + +[Debug] give_back: +- bid: 1 +- content: &mut@1 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +[Debug] give_back_value: +- bid: 1 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (1: i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +[Debug] give_back_value: +- bid: 0 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + [Debug] **About to evaluate statement**: [ @@ -12236,25 +18697,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 1: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -12270,29 +18736,108 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 1: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 1: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +move var@15 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +1: i32 + [Debug] **About to evaluate statement**: [ var@13 := ¬ move var@14; @@ -12310,25 +18855,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> true ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -12344,29 +18894,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> true ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> true ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +move var@14 + [Debug] **About to evaluate statement**: [ assert(¬move var@13); @@ -12383,25 +18975,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> false ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -12417,29 +19014,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> false ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> false ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + +- op: +move var@13 + [Debug] **About to evaluate statement**: [ var@18 := copy y; @@ -12455,25 +19094,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } @@ -12489,28 +19133,314 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; } +- op: +copy y + +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3)) +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> &mut@3 (0: i32) ; + None -> ⊥ : bool ; +} + +[Debug] give_back: +- bid: 3 +- content: &mut@3 (0: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + + +[Debug] give_back_value: +- bid: 3 +- value: 0: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + + +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (0: i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + +[Debug] give_back: +- bid: 2 +- content: &mut@2 (0: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + + +[Debug] give_back_value: +- bid: 2 +- value: 0: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + [Debug] **About to evaluate statement**: [ @@ -12526,25 +19456,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 0: i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; } @@ -12560,29 +19495,108 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 0: i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 0: i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + + +- op: +move var@18 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + + +- op: +0: i32 + [Debug] **About to evaluate statement**: [ var@16 := ¬ move var@17; @@ -12596,25 +19610,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> true ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; } @@ -12630,29 +19649,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> true ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> true ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + + +- op: +move var@17 + [Debug] **About to evaluate statement**: [ assert(¬move var@16); @@ -12665,25 +19726,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> false ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; } @@ -12699,28 +19765,70 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> false ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> false ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; } +- op: +move var@16 [Debug] **About to evaluate statement**: [ @@ -12733,25 +19841,30 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> 0: i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (i32) ; + None -> true ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : &'_ mut (i32) ; + None -> ⊥ : bool ; } @@ -12781,17 +19894,17 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -12807,20 +19920,44 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -12845,17 +19982,17 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -12871,17 +20008,17 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -12908,17 +20045,17 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -12934,21 +20071,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move px + [Debug] **About to evaluate statement**: [ (p).0 := move var@4; @@ -12970,17 +20131,17 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> &mut@0 (0: u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -12996,21 +20157,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> &mut@0 (0: u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> &mut@0 (0: u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move var@4 + [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) ty: (Types.Adt (Types.Tuple, [], @@ -13037,17 +20222,17 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), ⊥ : u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -13063,20 +20248,44 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), ⊥ : u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), ⊥ : u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -13097,17 +20306,17 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> (&mut@0 (0: u32), 1: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), 1: u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -13123,17 +20332,17 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> (&mut@0 (0: u32), 1: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), 1: u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -13156,17 +20365,17 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 ((&mut@0 (0: u32), 1: u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 ((&mut@0 (0: u32), 1: u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -13182,17 +20391,17 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 ((&mut@0 (0: u32), 1: u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 ((&mut@0 (0: u32), 1: u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -13214,17 +20423,17 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } @@ -13240,48 +20449,47 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } [Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Adt - { Values.variant_id = ; - field_values = - [{ Values.value = - (Values.Borrow - (Values.MutBorrow (, - { Values.value = - (Values.Concrete - (Values.Scalar { Values.value = 0; int_ty = Types.U32 })); - ty = (Types.Integer Types.U32) } - ))); - ty = - (Types.Ref (Types.Erased, (Types.Integer Types.U32), Types.Mut)) }; - { Values.value = - (Values.Concrete - (Values.Scalar { Values.value = 1; int_ty = Types.U32 })); - ty = (Types.Integer Types.U32) } - ] - }); - ty = - (Types.Adt (Types.Tuple, [], - [(Types.Ref (Types.Erased, (Types.Integer Types.U32), Types.Mut)); - (Types.Integer Types.U32)] - )) - } +(&mut@0 (0: u32), 1: u32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> &mut@2 ((&mut@0 (0: u32), 1: u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move var@7 + [Debug] **About to evaluate statement**: [ var@2 := &mut *(x); @@ -13295,24 +20503,24 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - x -> &mut@2 ((&mut@0 (0: u32), 1: u32)) ; - var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (x) -> &mut@2 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@2) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; } @@ -13328,24 +20536,24 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - x -> &mut@2 ((&mut@0 (0: u32), 1: u32)) ; - var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (x) -> &mut@2 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@2) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; } @@ -13362,24 +20570,24 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 ((&mut@0 (0: u32), 1: u32)) ; } @@ -13395,24 +20603,24 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 ((&mut@0 (0: u32), 1: u32)) ; } @@ -13428,24 +20636,24 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } # Frame 1: { - var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (⌊mut@4⌋) ; + Some (var@0) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; } @@ -13456,55 +20664,57 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; } # Frame 1: { - var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (⌊mut@4⌋) ; + Some (var@0) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; } -[Debug] ctx_pop_frame: locals to drop: [2,1] -[Debug] drop_value: place: var@2 -[Debug] drop_value: place: x -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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)) ; + Some (var@0) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ y := 2: u32; @@ -13521,17 +20731,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13547,21 +20760,51 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +2: u32 + [Debug] **About to evaluate statement**: [ var@10 := &mut y; @@ -13577,17 +20820,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> 2: u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> 2: u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13603,17 +20849,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> 2: u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> 2: u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13632,17 +20881,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@5⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@5 (2: u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (2: u32) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13658,17 +20910,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@5⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@5 (2: u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (2: u32) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13686,17 +20941,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@5⌋ ; - var@9 -> &mut@6 (2: u32) ; - var@10 -> &mut@5 (⌊mut@6⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> &mut@6 (2: u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13712,20 +20970,131 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@5⌋ ; - var@9 -> &mut@6 (2: u32) ; - var@10 -> &mut@5 (⌊mut@6⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> &mut@6 (2: u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> &mut@6 (2: u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +move var@9 + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((⊥ : &'_ mut (u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> &mut@6 (2: u32) ; + None -> &mut@0 (0: u32) ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (0: u32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((⊥ : &'_ mut (u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> &mut@6 (2: u32) ; + None -> ⊥ : &'_ mut (u32) ; } +[Debug] give_back_value: +- bid: 0 +- value: 0: u32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((⊥ : &'_ mut (u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> &mut@6 (2: u32) ; + None -> ⊥ : &'_ mut (u32) ; +} + [Debug] **About to evaluate statement**: [ @@ -13739,17 +21108,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13765,21 +21137,51 @@ ty: (Types.Adt (Types.Tuple, [], # 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⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +3: u32 + [Debug] **About to evaluate statement**: [ return @@ -13791,17 +21193,20 @@ ty: (Types.Adt (Types.Tuple, [], # 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⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@4 ((&mut@6 (2: u32), 3: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -13819,7 +21224,7 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : char ; + Some (var@0) -> ⊥ : char ; } @@ -13835,11 +21240,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : char ; + Some (var@0) -> ⊥ : char ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : char ; +} + + +- op: +a + [Debug] **About to evaluate statement**: [ return @@ -13851,7 +21270,7 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> a ; + Some (var@0) -> a ; } @@ -13898,31 +21317,31 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; } @@ -13938,34 +21357,72 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; } +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -13995,45 +21452,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14049,49 +21506,101 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 + [Debug] **About to evaluate statement**: [ s := 0: u32; @@ -14119,45 +21628,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14173,48 +21682,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -14242,45 +21803,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14309,45 +21870,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14374,45 +21935,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14428,48 +21989,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -14492,45 +22105,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14546,49 +22159,101 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max + [Debug] **About to evaluate statement**: [ var@3 := move var@4 < move var@5; @@ -14609,45 +22274,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14663,49 +22328,153 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + [Debug] **About to evaluate statement**: [ if (move var@3) { @@ -14725,49 +22494,101 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 + [Debug] **About to evaluate statement**: [ var@6 := copy i; @@ -14782,45 +22603,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14836,49 +22657,101 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ s := copy s + copy var@6; @@ -14892,45 +22765,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -14946,48 +22819,152 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +copy var@6 [Debug] **About to evaluate statement**: [ @@ -15001,45 +22978,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15055,49 +23032,153 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 + [Debug] **About to evaluate statement**: [ continue 0 @@ -15109,45 +23190,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15174,45 +23255,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15228,49 +23309,101 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ var@5 := copy max; @@ -15292,45 +23425,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15346,48 +23479,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -15409,45 +23594,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15463,48 +23648,152 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -15525,48 +23814,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -15582,45 +23923,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15636,48 +23977,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -15692,45 +24085,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15746,48 +24139,152 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@6 [Debug] **About to evaluate statement**: [ @@ -15801,45 +24298,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15855,49 +24352,153 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 + [Debug] **About to evaluate statement**: [ continue 0 @@ -15909,45 +24510,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -15974,45 +24575,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -16028,48 +24629,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -16092,45 +24745,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -16146,49 +24799,101 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max + [Debug] **About to evaluate statement**: [ var@3 := move var@4 < move var@5; @@ -16209,45 +24914,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -16263,48 +24968,152 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -16325,48 +25134,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -16379,45 +25240,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -16434,45 +25295,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -16488,48 +25349,152 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -16542,45 +25507,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (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) ; + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -16591,104 +25556,99 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - -[Debug] ctx_pop_frame: locals to drop: [9,8,7,6,5,4,3,2,1] -[Debug] drop_value: place: var@9 -[Debug] drop_value: place: var@8 -[Debug] drop_value: place: var@7 -[Debug] drop_value: place: var@6 -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: var@3 -[Debug] drop_value: place: i -[Debug] drop_value: place: max -[Debug] 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> ⊥ : (u32, bool) ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } + +- op: +move s + [Debug] **About to evaluate statement**: [ var@4 := copy x; @@ -16729,31 +25689,41 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -16769,34 +25739,92 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -16837,31 +25865,41 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -16877,34 +25915,140 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -16944,31 +26088,41 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -16984,34 +26138,92 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -17050,31 +26262,41 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> false ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -17090,34 +26312,92 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> false ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> false ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@2 [Debug] **About to evaluate statement**: [ @@ -17155,31 +26435,41 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -17195,34 +26485,92 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -17259,45 +26607,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -17313,49 +26671,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 + [Debug] **About to evaluate statement**: [ s := 0: u32; @@ -17390,45 +26820,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -17444,49 +26884,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 + [Debug] **About to evaluate statement**: [ loop { @@ -17520,45 +27032,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -17595,45 +27117,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -17668,45 +27200,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -17722,49 +27264,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ var@5 := copy max; @@ -17794,45 +27408,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -17848,49 +27472,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max + [Debug] **About to evaluate statement**: [ var@3 := move var@4 < move var@5; @@ -17919,45 +27615,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -17973,48 +27679,182 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -18043,49 +27883,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 + [Debug] **About to evaluate statement**: [ var@6 := copy i; @@ -18108,45 +28020,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18162,49 +28084,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ switch (move var@6) { @@ -18226,49 +28220,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 0: u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 + [Debug] **About to evaluate statement**: [ var@7 := copy i; @@ -18283,45 +28349,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18337,49 +28413,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ s := copy s + copy var@7; @@ -18393,45 +28541,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18447,48 +28605,182 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@7 [Debug] **About to evaluate statement**: [ @@ -18502,45 +28794,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18556,48 +28858,182 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -18610,45 +29046,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18683,45 +29129,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18737,49 +29193,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ var@5 := copy max; @@ -18809,45 +29337,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18863,49 +29401,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max + [Debug] **About to evaluate statement**: [ var@3 := move var@4 < move var@5; @@ -18934,45 +29544,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -18988,48 +29608,182 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -19058,49 +29812,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 + [Debug] **About to evaluate statement**: [ var@6 := copy i; @@ -19123,45 +29949,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -19177,49 +30013,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ switch (move var@6) { @@ -19241,49 +30149,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 1: u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 + [Debug] **About to evaluate statement**: [ var@7 := copy i; @@ -19298,45 +30278,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -19352,49 +30342,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ s := copy s + copy var@7; @@ -19408,45 +30470,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -19462,48 +30534,182 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@7 [Debug] **About to evaluate statement**: [ @@ -19517,45 +30723,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -19571,48 +30787,182 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -19625,45 +30975,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -19698,45 +31058,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -19752,49 +31122,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + [Debug] **About to evaluate statement**: [ var@5 := copy max; @@ -19824,45 +31266,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -19878,49 +31330,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max + [Debug] **About to evaluate statement**: [ var@3 := move var@4 < move var@5; @@ -19949,45 +31473,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -20003,48 +31537,182 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -20073,49 +31741,121 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 + [Debug] **About to evaluate statement**: [ break 0 @@ -20127,45 +31867,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } # 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) ; + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -20181,45 +31931,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; } @@ -20230,103 +31990,118 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; -} - -[Debug] ctx_pop_frame: locals to drop: [9,8,7,6,5,4,3,2,1] -[Debug] drop_value: place: var@9 -[Debug] drop_value: place: var@8 -[Debug] drop_value: place: var@7 -[Debug] drop_value: place: var@6 -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: var@3 -[Debug] drop_value: place: i -[Debug] drop_value: place: max -[Debug] 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) ; -} + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> ⊥ : (u32, bool) ; + Some (var@9) -> ⊥ : (u32, bool) ; +} + + +- op: +move s [Debug] **About to evaluate statement**: [ @@ -20363,31 +32138,51 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -20403,34 +32198,112 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -20466,31 +32339,51 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 2: u32 ; - var@2 -> ⊥ : bool ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -20506,34 +32399,170 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 2: u32 ; - var@2 -> ⊥ : bool ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -20568,31 +32597,51 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -20608,34 +32657,112 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -20669,31 +32796,51 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -20709,34 +32856,112 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -20769,31 +32994,51 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -20809,34 +33054,112 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -20892,55 +33215,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -20956,58 +33299,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -21062,55 +33507,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -21126,58 +33591,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -21231,55 +33798,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -21295,58 +33882,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -21399,55 +34088,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -21502,55 +34211,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -21603,55 +34332,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -21667,58 +34416,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -21767,55 +34618,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -21831,58 +34702,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -21930,55 +34903,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -21994,58 +34987,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -22092,58 +35269,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -22185,55 +35464,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -22273,55 +35572,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -22359,55 +35678,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -22423,58 +35762,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -22508,55 +35949,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -22572,58 +36033,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -22656,55 +36219,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -22720,58 +36303,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -22803,58 +36570,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -22881,55 +36750,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -22945,58 +36834,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -23022,55 +37013,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23086,58 +37097,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -23162,55 +37275,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23226,58 +37359,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@12 [Debug] **About to evaluate statement**: [ @@ -23301,55 +37618,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23372,58 +37709,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@10 [Debug] **About to evaluate statement**: [ @@ -23436,55 +37875,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23503,55 +37962,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23567,58 +38046,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -23633,55 +38214,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23697,58 +38298,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@14 [Debug] **About to evaluate statement**: [ @@ -23762,55 +38547,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23826,58 +38631,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -23890,55 +38879,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -23991,55 +39000,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -24055,58 +39084,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -24155,55 +39286,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -24219,58 +39370,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -24318,55 +39571,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -24382,58 +39655,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -24480,58 +39937,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -24573,55 +40132,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -24661,55 +40240,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -24747,55 +40346,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -24811,58 +40430,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -24896,55 +40617,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -24960,58 +40701,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -25044,55 +40887,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -25108,58 +40971,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -25191,62 +41238,427 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 -# Frame 1: +[Debug] +**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: { - 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - var@11 := copy i; + var@11 := copy i +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] +**About to evaluate statement**: [ var@12 := copy j; var@10 := copy var@11 + copy var@12; switch (move var@10) { @@ -25269,196 +41681,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - - -[Debug] -**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) ; -} - - - -[Debug] -**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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -25474,58 +41765,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -25550,55 +41943,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -25614,58 +42027,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@12 [Debug] **About to evaluate statement**: [ @@ -25689,55 +42286,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -25760,58 +42377,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@10 [Debug] **About to evaluate statement**: [ @@ -25824,55 +42543,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -25891,55 +42630,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -25955,58 +42714,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -26021,55 +42882,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -26085,58 +42966,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@14 [Debug] **About to evaluate statement**: [ @@ -26150,55 +43215,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -26214,58 +43299,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -26278,55 +43547,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -26379,55 +43668,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -26443,58 +43752,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -26543,55 +43954,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -26607,58 +44038,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -26706,55 +44239,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -26770,58 +44323,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -26868,58 +44605,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -26961,55 +44800,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27049,55 +44908,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27135,55 +45014,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27199,58 +45098,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -27284,55 +45285,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27348,58 +45369,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -27432,55 +45555,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27496,58 +45639,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -27579,58 +45906,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -27643,55 +46072,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27711,55 +46160,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27775,58 +46244,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -27842,55 +46413,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -27906,58 +46497,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -27972,55 +46665,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -28036,58 +46749,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@17 [Debug] **About to evaluate statement**: [ @@ -28101,55 +46998,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -28165,58 +47082,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -28229,55 +47330,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -28330,55 +47451,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -28394,58 +47535,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -28494,55 +47737,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -28558,58 +47821,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -28657,55 +48022,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -28721,58 +48106,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -28819,58 +48388,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -28912,55 +48583,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29000,55 +48691,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29086,55 +48797,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29150,58 +48881,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -29235,55 +49068,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29299,58 +49152,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -29383,55 +49338,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29447,58 +49422,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -29530,58 +49689,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -29608,55 +49869,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29672,58 +49953,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 0: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -29749,55 +50132,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29813,58 +50216,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -29889,55 +50394,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -29953,58 +50478,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@12 [Debug] **About to evaluate statement**: [ @@ -30028,55 +50737,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30099,58 +50828,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@10 [Debug] **About to evaluate statement**: [ @@ -30163,55 +50994,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30230,55 +51081,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30294,58 +51165,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 0: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -30360,55 +51333,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30424,58 +51417,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@14 [Debug] **About to evaluate statement**: [ @@ -30489,55 +51666,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30553,58 +51750,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -30617,55 +51998,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30718,55 +52119,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30782,58 +52203,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -30882,55 +52405,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -30946,58 +52489,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -31045,55 +52690,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -31109,58 +52774,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -31207,58 +53056,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -31300,55 +53251,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -31388,55 +53359,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -31474,55 +53465,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -31538,58 +53549,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -31623,55 +53736,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -31687,58 +53820,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -31771,55 +54006,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -31835,58 +54090,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -31918,58 +54357,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -31996,55 +54537,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32060,58 +54621,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -32137,55 +54800,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32201,58 +54884,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -32277,55 +55062,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32341,58 +55146,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@12 [Debug] **About to evaluate statement**: [ @@ -32416,55 +55405,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 2: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32487,58 +55496,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 2: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 2: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@10 [Debug] **About to evaluate statement**: [ @@ -32551,55 +55662,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32618,55 +55749,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32682,58 +55833,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -32748,55 +56001,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32812,58 +56085,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@14 [Debug] **About to evaluate statement**: [ @@ -32877,55 +56334,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -32941,58 +56418,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -33005,55 +56666,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -33106,55 +56787,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -33170,58 +56871,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -33270,55 +57073,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -33334,58 +57157,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -33433,55 +57358,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -33497,58 +57442,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -33595,58 +57724,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -33688,55 +57919,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -33776,55 +58027,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -33862,55 +58133,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -33926,58 +58217,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -34011,55 +58404,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -34075,58 +58488,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -34159,55 +58674,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -34223,58 +58758,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -34306,58 +59025,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -34370,55 +59191,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -34438,55 +59279,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -34502,58 +59363,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -34569,55 +59532,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -34633,58 +59616,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 0: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -34699,55 +59784,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -34763,58 +59868,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@17 [Debug] **About to evaluate statement**: [ @@ -34828,55 +60117,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -34892,58 +60201,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -34956,55 +60449,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -35057,55 +60570,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -35121,58 +60654,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -35221,55 +60856,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -35285,58 +60940,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -35384,55 +61141,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -35448,58 +61225,242 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -35546,58 +61507,160 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -35610,119 +61673,159 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - - -[Debug] -**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 -> ⊥ : u32 ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : u32 ; - x -> ⊥ : u32 ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : bool ; - var@16 -> ⊥ : u32 ; - x -> ⊥ : 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -35733,133 +61836,158 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - -[Debug] 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] -[Debug] drop_value: place: var@19 -[Debug] drop_value: place: var@18 -[Debug] drop_value: place: var@17 -[Debug] drop_value: place: var@16 -[Debug] drop_value: place: var@15 -[Debug] drop_value: place: var@14 -[Debug] drop_value: place: var@13 -[Debug] drop_value: place: var@12 -[Debug] drop_value: place: var@11 -[Debug] drop_value: place: var@10 -[Debug] drop_value: place: var@9 -[Debug] drop_value: place: var@8 -[Debug] drop_value: place: var@7 -[Debug] drop_value: place: var@6 -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: j -[Debug] drop_value: place: i -[Debug] drop_value: place: max -[Debug] 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) ; -} + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 3: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 1: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> 1: u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move s [Debug] **About to evaluate statement**: [ @@ -35891,31 +62019,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -35931,34 +62099,152 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -35989,31 +62275,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 3: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -36029,34 +62355,230 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 3: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 3: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@12 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +3: u32 [Debug] **About to evaluate statement**: [ @@ -36086,31 +62608,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -36126,34 +62688,152 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@11 [Debug] **About to evaluate statement**: [ @@ -36182,31 +62862,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -36222,34 +62942,152 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> false ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@10 [Debug] **About to evaluate statement**: [ @@ -36277,31 +63115,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -36317,34 +63195,152 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +20: u32 [Debug] **About to evaluate statement**: [ @@ -36400,55 +63396,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -36464,58 +63500,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -36570,55 +63748,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -36634,58 +63852,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -36739,55 +64099,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -36803,58 +64203,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -36907,55 +64449,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37010,55 +64592,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37111,55 +64733,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37175,58 +64837,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -37275,55 +65079,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37339,58 +65183,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -37438,55 +65424,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 20: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37502,58 +65528,302 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 20: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 20: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 20: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -37600,58 +65870,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -37693,55 +66105,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37781,55 +66233,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37867,55 +66359,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -37931,58 +66463,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -38016,55 +66690,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -38080,58 +66794,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -38164,55 +67020,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 20: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -38228,58 +67124,302 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 20: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 20: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 20: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -38311,58 +67451,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -38389,55 +67671,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -38453,58 +67775,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -38530,55 +67994,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -38594,58 +68098,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> ⊥ : u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -38670,55 +68316,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -38734,58 +68420,302 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@12 [Debug] **About to evaluate statement**: [ @@ -38809,55 +68739,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -38880,58 +68850,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@10 [Debug] **About to evaluate statement**: [ @@ -38944,55 +69056,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -39011,55 +69163,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -39075,58 +69267,200 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> ⊥ : u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -39141,55 +69475,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -39205,58 +69579,302 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@14 [Debug] **About to evaluate statement**: [ @@ -39270,55 +69888,95 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -39334,58 +69992,302 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -39398,119 +70300,199 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - - -[Debug] -**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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; } @@ -39521,133 +70503,198 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - -[Debug] 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] -[Debug] drop_value: place: var@19 -[Debug] drop_value: place: var@18 -[Debug] drop_value: place: var@17 -[Debug] drop_value: place: var@16 -[Debug] drop_value: place: var@15 -[Debug] drop_value: place: var@14 -[Debug] drop_value: place: var@13 -[Debug] drop_value: place: var@12 -[Debug] drop_value: place: var@11 -[Debug] drop_value: place: var@10 -[Debug] drop_value: place: var@9 -[Debug] drop_value: place: var@8 -[Debug] drop_value: place: var@7 -[Debug] drop_value: place: var@6 -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: j -[Debug] drop_value: place: i -[Debug] drop_value: place: max -[Debug] 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) ; -} + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 20: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> 1: u32 ; + Some (var@12) -> 0: u32 ; + Some (var@13) -> ⊥ : (u32, bool) ; + Some (var@14) -> 1: u32 ; + Some (var@15) -> ⊥ : (u32, bool) ; + Some (var@16) -> ⊥ : (u32, bool) ; + Some (var@17) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : (u32, bool) ; + Some (var@19) -> ⊥ : (u32, bool) ; +} + + +- op: +move s [Debug] **About to evaluate statement**: [ @@ -39674,31 +70721,91 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -39714,34 +70821,192 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -39767,31 +71032,91 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> 1: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -39807,34 +71132,290 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> 1: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> 1: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@16 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -39859,31 +71440,91 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> true ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -39899,34 +71540,192 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> true ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> true ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@15 [Debug] **About to evaluate statement**: [ @@ -39950,31 +71749,91 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> false ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -39990,34 +71849,192 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> false ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> false ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@14 [Debug] **About to evaluate statement**: [ @@ -40040,31 +72057,91 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -40080,34 +72157,192 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -40151,51 +72386,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -40211,54 +72506,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -40301,51 +72774,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -40361,54 +72894,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -40450,51 +73161,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -40510,54 +73281,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -40598,51 +73547,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -40685,51 +73694,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -40770,51 +73839,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -40830,54 +73959,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -40914,51 +74221,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -40974,54 +74341,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -41057,51 +74602,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -41117,54 +74722,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 0: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -41199,54 +75100,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -41276,51 +75355,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -41349,51 +75488,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -41420,51 +75619,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -41480,54 +75739,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -41550,51 +75987,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -41610,54 +76107,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -41679,51 +76354,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -41739,54 +76474,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -41807,54 +76838,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -41870,51 +77079,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -41930,54 +77199,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -41992,51 +77439,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42052,54 +77559,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@10 [Debug] **About to evaluate statement**: [ @@ -42113,51 +77916,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42173,54 +78036,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 0: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -42233,51 +78392,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42304,51 +78523,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42364,54 +78643,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -42434,51 +78891,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42494,54 +79011,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -42563,51 +79258,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42623,54 +79378,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -42691,54 +79742,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -42754,51 +79983,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42814,54 +80103,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 0: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -42876,51 +80343,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -42936,54 +80463,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@10 [Debug] **About to evaluate statement**: [ @@ -42997,51 +80820,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43057,54 +80940,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 1: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -43117,51 +81296,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43188,51 +81427,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43248,54 +81547,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -43318,51 +81795,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43378,54 +81915,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -43447,51 +82162,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43507,54 +82282,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -43575,54 +82646,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -43635,51 +82884,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43698,51 +83007,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43758,54 +83127,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -43820,51 +83367,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -43880,54 +83487,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@13 [Debug] **About to evaluate statement**: [ @@ -43941,51 +83844,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44001,54 +83964,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -44061,51 +84320,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44146,51 +84465,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44206,54 +84585,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -44290,51 +84847,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44350,54 +84967,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -44433,51 +85228,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44493,54 +85348,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 1: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -44575,54 +85726,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -44652,51 +85981,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44725,51 +86114,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44796,51 +86245,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44856,54 +86365,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy j [Debug] **About to evaluate statement**: [ @@ -44926,51 +86613,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -44986,54 +86733,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -45055,51 +86980,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -45115,54 +87100,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 2: u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> 2: u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@9 [Debug] **About to evaluate statement**: [ @@ -45183,54 +87464,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> false ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -45243,51 +87702,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -45306,51 +87825,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -45366,54 +87945,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 0: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -45428,51 +88185,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -45488,54 +88305,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@13 [Debug] **About to evaluate statement**: [ @@ -45549,51 +88662,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -45609,54 +88782,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -45669,51 +89138,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -45754,51 +89283,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -45814,58 +89403,617 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i -# Frame 1: +[Debug] +**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: { - 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - var@6 := copy max; + var@6 := copy max +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max + +[Debug] +**About to evaluate statement**: [ var@4 := move var@5 < move var@6; if (move var@4) { loop { @@ -45898,194 +90046,111 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - - -[Debug] -**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) ; -} - - - -[Debug] -**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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -46101,54 +90166,350 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> 2: u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -46183,54 +90544,232 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> false ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 [Debug] **About to evaluate statement**: [ @@ -46243,111 +90782,231 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - - -[Debug] -**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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; } @@ -46358,121 +91017,230 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - -[Debug] ctx_pop_frame: locals to drop: [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1] -[Debug] drop_value: place: var@15 -[Debug] drop_value: place: var@14 -[Debug] drop_value: place: var@13 -[Debug] drop_value: place: var@12 -[Debug] drop_value: place: var@11 -[Debug] drop_value: place: var@10 -[Debug] drop_value: place: var@9 -[Debug] drop_value: place: var@8 -[Debug] drop_value: place: var@7 -[Debug] drop_value: place: var@6 -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: j -[Debug] drop_value: place: i -[Debug] drop_value: place: max -[Debug] 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) ; -} + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (j) -> 2: u32 ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : u32 ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : u32 ; + Some (var@10) -> 1: u32 ; + Some (var@11) -> ⊥ : (u32, bool) ; + Some (var@12) -> ⊥ : (u32, bool) ; + Some (var@13) -> 1: u32 ; + Some (var@14) -> ⊥ : (u32, bool) ; + Some (var@15) -> ⊥ : (u32, bool) ; +} + + +- op: +move s [Debug] **About to evaluate statement**: [ @@ -46494,31 +91262,107 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -46534,34 +91378,224 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +copy x [Debug] **About to evaluate statement**: [ @@ -46582,31 +91616,107 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> 2: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -46622,34 +91732,338 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> 2: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> 2: u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@20 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -46669,31 +92083,107 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> true ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -46709,34 +92199,224 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> true ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> true ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@19 [Debug] **About to evaluate statement**: [ @@ -46755,31 +92435,107 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> false ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -46795,34 +92551,224 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> false ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> false ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@18 [Debug] **About to evaluate statement**: [ @@ -46840,31 +92786,107 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } @@ -46880,34 +92902,224 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +2: u32 [Debug] **About to evaluate statement**: [ @@ -46944,47 +93156,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47000,50 +93288,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> ⊥ : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -47079,47 +93573,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47135,50 +93705,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> ⊥ : u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +0: u32 [Debug] **About to evaluate statement**: [ @@ -47213,47 +93989,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47289,47 +94141,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47363,47 +94291,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47419,50 +94423,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -47492,47 +94702,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47548,50 +94834,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -47620,47 +95112,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47676,50 +95244,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 0: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -47747,50 +95651,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -47813,47 +95923,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47869,50 +96055,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -47934,47 +96326,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -47990,50 +96458,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +3: u32 [Debug] **About to evaluate statement**: [ @@ -48054,50 +96858,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -48113,47 +97123,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -48169,50 +97255,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -48227,47 +97519,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -48283,50 +97651,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@8 [Debug] **About to evaluate statement**: [ @@ -48340,47 +98044,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -48396,50 +98176,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 0: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -48452,47 +98568,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -48526,47 +98718,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -48582,50 +98850,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -48655,47 +99129,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -48711,50 +99261,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -48783,47 +99539,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -48839,50 +99671,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 1: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -48910,50 +100078,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -48976,47 +100350,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49032,50 +100482,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -49097,47 +100753,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49153,50 +100885,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 1: u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@7 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +3: u32 [Debug] **About to evaluate statement**: [ @@ -49217,50 +101285,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -49276,47 +101550,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49332,50 +101682,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 0: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -49390,47 +101946,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49446,50 +102078,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 0: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@8 [Debug] **About to evaluate statement**: [ @@ -49503,47 +102471,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49559,50 +102603,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 1: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 [Debug] **About to evaluate statement**: [ @@ -49615,47 +102995,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49689,47 +103145,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49745,50 +103277,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy i [Debug] **About to evaluate statement**: [ @@ -49818,47 +103556,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -49874,50 +103688,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy max [Debug] **About to evaluate statement**: [ @@ -49946,47 +103966,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -50002,50 +104098,386 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> 2: u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> 2: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@5 [Debug] **About to evaluate statement**: [ @@ -50073,50 +104505,256 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; -} - - + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move var@3 [Debug] **About to evaluate statement**: [ @@ -50129,47 +104767,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -50186,47 +104900,123 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } @@ -50242,220 +105032,1162 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +copy s + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 1: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +1: u32 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; } -# 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) ; -} +[Debug] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + +# Frame 1: +{ + Some (s) -> 2: u32 ; + Some (max) -> 2: u32 ; + Some (i) -> 2: u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : u32 ; + Some (var@8) -> 1: u32 ; + Some (var@9) -> ⊥ : (u32, bool) ; + Some (var@10) -> ⊥ : (u32, bool) ; + Some (var@11) -> ⊥ : (u32, bool) ; +} + + +- op: +move s [Debug] **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: {} -# 2 frame(s) +# 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } -# 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) ; -} +[Debug] +**About to evaluate statement**: [ + var@24 := copy x +] -[Debug] ctx_pop_frame: +**Context**: # Ended regions: {} -# 2 frame(s) +# 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 ; -} - -# 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) ; -} - -[Debug] ctx_pop_frame: locals to drop: [11,10,9,8,7,6,5,4,3,2,1] -[Debug] drop_value: place: var@11 -[Debug] drop_value: place: var@10 -[Debug] drop_value: place: var@9 -[Debug] drop_value: place: var@8 -[Debug] drop_value: place: var@7 -[Debug] drop_value: place: var@6 -[Debug] drop_value: place: var@5 -[Debug] drop_value: place: var@4 -[Debug] drop_value: place: var@3 -[Debug] drop_value: place: i -[Debug] drop_value: place: max -[Debug] 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) ; -} + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +copy x [Debug] **About to evaluate statement**: [ - var@24 := copy x; var@23 := move var@24 == 2: u32; var@22 := ¬ move var@23; assert(¬move var@22); @@ -50468,38 +106200,508 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> 2: u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - var@24 := copy x + var@23 := move var@24 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> 2: u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> 2: u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@24 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +2: u32 + +[Debug] +**About to evaluate statement**: [ + var@22 := ¬ move var@23; + assert(¬move var@22); + return ] **Context**: @@ -50508,39 +106710,379 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> true ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - var@23 := move var@24 == 2: u32; - var@22 := ¬ move var@23; + var@22 := ¬ move var@23 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> true ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> true ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@23 + +[Debug] +**About to evaluate statement**: [ assert(¬move var@22); return ] @@ -50551,38 +107093,126 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> false ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - var@23 := move var@24 == 2: u32 + assert(¬move var@22) ] **Context**: @@ -50591,39 +107221,394 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> false ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> false ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; +} + + +- op: +move var@22 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> 3: u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> 1: u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> 2: u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 0: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 20: u32 ; + None -> 1: u32 ; + None -> 1: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> 0: u32 ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : u32 ; + None -> 2: u32 ; + None -> 2: u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> ⊥ : u32 ; + None -> ⊥ : bool ; + None -> ⊥ : u32 ; + None -> 1: u32 ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; + None -> ⊥ : (u32, bool) ; } +[Debug] test_unit_function: id_mut_mut_test1 [Debug] **About to evaluate statement**: [ - var@22 := ¬ move var@23; - assert(¬move var@22); + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(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 ] @@ -50633,38 +107618,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@22 := ¬ move var@23 + x := 0: i32 ] **Context**: @@ -50673,38 +107645,62 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + +- op: +0: i32 + [Debug] **About to evaluate statement**: [ - assert(¬move var@22); + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(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 ] @@ -50714,38 +107710,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@22) + px := &mut x ] **Context**: @@ -50754,37 +107737,36 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(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 ] @@ -50794,41 +107776,51 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } -[Debug] test_unit_function: id_mut_mut_test1 [Debug] **About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; var@5 := &two-phase *(ppx); ppy := move id_mut_mut(move var@5); *(*(ppy)) := 1: i32; @@ -50849,25 +107841,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - x := 0: i32 + var@5 := &two-phase *(ppx) ] **Context**: @@ -50876,27 +107868,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); ppy := move id_mut_mut(move var@5); *(*(ppy)) := 1: i32; var@8 := copy *(px); @@ -50916,25 +107905,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - px := &mut x + ppy := move id_mut_mut(move var@5) ] **Context**: @@ -50943,156 +107932,283 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] activate_inactivated_mut_borrow: resulting value: +&mut@0 (0: i32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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); + var@2 := &mut *(x); + var@0 := &mut *(var@2); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - ppx := &mut px + var@2 := &mut *(x) ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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); + var@0 := &mut *(var@2); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; } [Debug] **About to evaluate statement**: [ - var@5 := &two-phase *(ppx) + var@0 := &mut *(var@2) ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; } [Debug] **About to evaluate statement**: [ - ppy := move id_mut_mut(move var@5); + return +] + +**Context**: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; +} + + + +[Debug] ctx_pop_frame: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +move var@0 + +[Debug] +**About to evaluate statement**: [ *(*(ppy)) := 1: i32; var@8 := copy *(px); var@7 := move var@8 == 1: i32; @@ -51111,25 +108227,28 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } [Debug] **About to evaluate statement**: [ - ppy := move id_mut_mut(move var@5) + *(*(ppy)) := 1: i32 ] **Context**: @@ -51138,328 +108257,538 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -[Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Borrow - (Values.MutBorrow (, - { 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)) } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +1: i32 + [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); + 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: {} -# 2 frame(s) +# 1 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)) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x) + var@8 := copy *(px) ] **Context**: # Ended regions: {} -# 2 frame(s) +# 1 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -# Frame 1: + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: { - var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; - x -> &mut@2 (&mut@0 (0: i32)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +- op: +copy *(px) -[Debug] -**About to evaluate statement**: [ - var@0 := &mut *(var@2); - return -] - -**Context**: +[Debug] end borrow: 1: +- original context: # Ended regions: {} -# 2 frame(s) +# 1 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -# Frame 1: +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: { - var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (&mut@0 (0: i32)) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3)) +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} -[Debug] -**About to evaluate statement**: [ - var@0 := &mut *(var@2) -] - -**Context**: +[Debug] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4)) +[Debug] end borrow: 4: +- original context: # Ended regions: {} -# 2 frame(s) +# 1 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -# Frame 1: +[Debug] give_back: +- bid: 4 +- content: &mut@4 (&mut@0 (1: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: { - var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (&mut@0 (0: i32)) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] give_back_value: +- bid: 4 +- value: &mut@0 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - return -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} -**Context**: + +[Debug] end borrow: 3: +- original context: # Ended regions: {} -# 2 frame(s) +# 1 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (&mut@0 (1: i32)) ; } -# Frame 1: +[Debug] give_back: +- bid: 3 +- content: &mut@3 (&mut@0 (1: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: { - var@0 -> &mut@4 (&mut@0 (0: i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (⌊mut@4⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } - -[Debug] ctx_pop_frame: +[Debug] give_back_value: +- bid: 3 +- value: &mut@0 (1: i32) +- context: # Ended regions: {} -# 2 frame(s) +# 1 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -# Frame 1: + +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: { - var@0 -> &mut@4 (&mut@0 (0: i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (⌊mut@4⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (&mut@0 (1: i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] ctx_pop_frame: locals to drop: [2,1] -[Debug] drop_value: place: var@2 -[Debug] drop_value: place: x -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] give_back: +- bid: 2 +- content: &mut@2 (&mut@0 (1: i32)) +- context: # Ended regions: {} -# 2 frame(s) +# 1 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -# Frame 1: + +[Debug] give_back_value: +- bid: 2 +- value: &mut@0 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: { - var@0 -> &mut@4 (&mut@0 (0: i32)) ; - x -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**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**: +[Debug] end borrow: 1: +- original 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back: +- bid: 1 +- content: &mut@1 (&mut@0 (1: i32)) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -[Debug] -**About to evaluate statement**: [ - *(*(ppy)) := 1: i32 -] -**Context**: +[Debug] give_back_value: +- bid: 1 +- value: &mut@0 (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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } - [Debug] **About to evaluate statement**: [ - var@8 := copy *(px); var@7 := move var@8 == 1: i32; var@6 := ¬ move var@7; assert(¬move var@6); @@ -51476,25 +108805,28 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@8 := copy *(px) + var@7 := move var@8 == 1: i32 ] **Context**: @@ -51503,82 +108835,80 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**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**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> 1: i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@8 -[Debug] -**About to evaluate statement**: [ - var@7 := move var@8 == 1: i32 -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ @@ -51597,18 +108927,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -51624,21 +108957,52 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@7 [Debug] **About to evaluate statement**: [ @@ -51656,18 +109020,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -51683,21 +109050,52 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> false ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@6 [Debug] **About to evaluate statement**: [ @@ -51714,18 +109112,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -51741,21 +109142,130 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +copy x + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +[Debug] give_back_value: +- bid: 0 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + [Debug] **About to evaluate statement**: [ @@ -51771,18 +109281,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> 1: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -51798,21 +109311,80 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> 1: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> 1: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +- op: +1: i32 [Debug] **About to evaluate statement**: [ @@ -51827,18 +109399,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -51854,21 +109429,52 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@10 [Debug] **About to evaluate statement**: [ @@ -51882,18 +109488,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> false ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -51909,22 +109518,53 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> false ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> false ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +- op: +move var@9 + [Debug] **About to evaluate statement**: [ return @@ -51936,18 +109576,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -51987,24 +109630,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52020,27 +109663,58 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } +- op: +0: i32 [Debug] **About to evaluate statement**: [ @@ -52075,24 +109749,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52108,24 +109782,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52162,24 +109836,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52195,24 +109869,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52248,24 +109922,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52281,24 +109955,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52333,24 +110007,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } @@ -52366,38 +110040,61 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } [Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Borrow - (Values.MutBorrow (, - { 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)) } +&mut@0 (0: i32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + +- op: +move var@5 + [Debug] **About to evaluate statement**: [ var@2 := &mut *(x); @@ -52411,31 +110108,31 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; - x -> &mut@2 (&mut@0 (0: i32)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -52451,31 +110148,31 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; - x -> &mut@2 (&mut@0 (0: i32)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } @@ -52492,31 +110189,31 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (&mut@0 (0: i32)) ; + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; } @@ -52532,31 +110229,31 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (&mut@0 (0: i32)) ; + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; } @@ -52572,31 +110269,31 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> &mut@4 (&mut@0 (0: i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (⌊mut@4⌋) ; + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; } @@ -52607,69 +110304,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> &mut@4 (&mut@0 (0: i32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (⌊mut@4⌋) ; + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; } -[Debug] ctx_pop_frame: locals to drop: [2,1] -[Debug] drop_value: place: var@2 -[Debug] drop_value: place: x -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } # Frame 1: { - var@0 -> &mut@4 (&mut@0 (0: i32)) ; - x -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; } + +- op: +move var@0 + [Debug] **About to evaluate statement**: [ *(*(ppy)) := 1: i32; @@ -52699,24 +110398,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -52732,28 +110434,65 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +1: i32 + [Debug] **About to evaluate statement**: [ y := 2: i32; @@ -52782,24 +110521,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -52815,27 +110557,64 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ @@ -52864,24 +110643,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 2: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -52897,24 +110679,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 2: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -52945,24 +110730,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (2: i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -52978,24 +110766,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (2: i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -53025,24 +110816,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> &mut@6 (2: i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -53058,28 +110852,167 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> &mut@6 (2: i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> &mut@6 (2: i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +move var@8 + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⊥ : &'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> &mut@6 (2: i32) ; + None -> &mut@0 (1: i32) ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⊥ : &'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> &mut@6 (2: i32) ; + None -> ⊥ : &'_ mut (i32) ; +} + + +[Debug] give_back_value: +- bid: 0 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⊥ : &'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> &mut@6 (2: i32) ; + None -> ⊥ : &'_ mut (i32) ; +} + + [Debug] **About to evaluate statement**: [ var@11 := copy *(px); @@ -53104,24 +111037,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } @@ -53137,185 +111073,546 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -[Debug] -**About to evaluate statement**: [ - var@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 -] +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + + +- op: +copy *(px) + +[Debug] end borrow: 1: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} -[Debug] -**About to evaluate statement**: [ - var@10 := move var@11 == 2: i32 -] +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3)) +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + +[Debug] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4)) +[Debug] end borrow: 4: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] give_back: +- bid: 4 +- content: &mut@4 (&mut@6 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} -[Debug] -**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**: +[Debug] give_back_value: +- bid: 4 +- value: &mut@6 (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 -> true ; - var@11 -> ⊥ : i32 ; - var@12 -> ⊥ : bool ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : i32 ; - var@15 -> ⊥ : bool ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - var@9 := ¬ move var@10 -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (&mut@6 (2: i32)) ; +} -**Context**: +[Debug] give_back: +- bid: 3 +- content: &mut@3 (&mut@6 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +[Debug] give_back_value: +- bid: 3 +- value: &mut@6 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (&mut@6 (2: i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + +[Debug] give_back: +- bid: 2 +- content: &mut@2 (&mut@6 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +[Debug] give_back_value: +- bid: 2 +- value: &mut@6 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@6 (2: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + +[Debug] give_back: +- bid: 1 +- content: &mut@1 (&mut@6 (2: i32)) +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back_value: +- bid: 1 +- value: &mut@6 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + [Debug] **About to evaluate statement**: [ + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; assert(¬move var@9); *(px) := 3: i32; var@14 := copy x; @@ -53335,31 +111632,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> 2: i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@9) + var@10 := move var@11 == 2: i32 ] **Context**: @@ -53368,30 +111668,103 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> 2: i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> 2: i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + +- op: +move var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ + var@9 := ¬ move var@10; + assert(¬move var@9); *(px) := 3: i32; var@14 := copy x; var@13 := move var@14 == 1: i32; @@ -53410,31 +111783,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - *(px) := 3: i32 + var@9 := ¬ move var@10 ] **Context**: @@ -53443,30 +111819,69 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@10 [Debug] **About to evaluate statement**: [ + assert(¬move var@9); + *(px) := 3: i32; var@14 := copy x; var@13 := move var@14 == 1: i32; var@12 := ¬ move var@13; @@ -53484,31 +111899,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> false ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@14 := copy x + assert(¬move var@9) ] **Context**: @@ -53517,30 +111935,69 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> false ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> false ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@9 [Debug] **About to evaluate statement**: [ + *(px) := 3: i32; + var@14 := copy x; var@13 := move var@14 == 1: i32; var@12 := ¬ move var@13; assert(¬move var@12); @@ -53557,31 +112014,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@13 := move var@14 == 1: i32 + *(px) := 3: i32 ] **Context**: @@ -53590,30 +112050,69 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +3: i32 [Debug] **About to evaluate statement**: [ + var@14 := copy x; + var@13 := move var@14 == 1: i32; var@12 := ¬ move var@13; assert(¬move var@12); var@17 := copy y; @@ -53629,31 +112128,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@12 := ¬ move var@13 + var@14 := copy x ] **Context**: @@ -53662,30 +112164,69 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +copy x [Debug] **About to evaluate statement**: [ + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; assert(¬move var@12); var@17 := copy y; var@16 := move var@17 == 3: i32; @@ -53700,31 +112241,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> 1: i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@12) + var@13 := move var@14 == 1: i32 ] **Context**: @@ -53733,100 +112277,104 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> 1: i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> 1: i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@14 -[Debug] -**About to evaluate statement**: [ - var@17 := copy y -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; var@16 := move var@17 == 3: i32; var@15 := ¬ move var@16; assert(¬move var@15); @@ -53839,31 +112387,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> true ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@16 := move var@17 == 3: i32 + var@12 := ¬ move var@13 ] **Context**: @@ -53872,66 +112423,73 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> true ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> true ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@13 [Debug] **About to evaluate statement**: [ - var@15 := ¬ move var@16 + 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**: @@ -53940,32 +112498,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> false ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@15); - return + assert(¬move var@12) ] **Context**: @@ -53974,63 +112534,71 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> false ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@15) -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> false ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@12 [Debug] **About to evaluate statement**: [ + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); return ] @@ -54040,35 +112608,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] test_function_symbolic: add_test [Debug] **About to evaluate statement**: [ - var@3 := copy x; - var@4 := copy y; - var@0 := copy var@3 + copy var@4; - return + var@17 := copy y ] **Context**: @@ -54077,151 +112644,293 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@3 := copy x -] - -**Context**: +[Debug] 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 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +copy y -[Debug] -**About to evaluate statement**: [ - var@4 := copy y; - var@0 := copy var@3 + copy var@4; - return -] - -**Context**: +[Debug] end borrow: 5: +- original 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 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } - - -[Debug] -**About to evaluate statement**: [ - var@4 := copy y -] - -**Context**: +[Debug] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 6)) +[Debug] end borrow: 6: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> &mut@6 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back: +- bid: 6 +- content: &mut@6 (3: i32) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -[Debug] -**About to evaluate statement**: [ - var@0 := copy var@3 + copy var@4; - return -] -**Context**: +[Debug] give_back_value: +- bid: 6 +- value: 3: i32 +- 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } - -[Debug] -**About to evaluate statement**: [ - var@0 := copy var@3 + copy var@4 -] - -**Context**: +[Debug] end borrow: 5: +- original 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (3: i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back: +- bid: 5 +- content: &mut@5 (3: i32) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -[Debug] -**About to evaluate statement**: [ - return -] -**Context**: +[Debug] give_back_value: +- bid: 5 +- value: 3: i32 +- 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } - -[Debug] test_function_symbolic: subs_test [Debug] **About to evaluate statement**: [ - var@3 := copy x; - var@4 := copy y; - var@0 := copy var@3 - copy var@4; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); return ] @@ -54231,19 +112940,34 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> 3: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@3 := copy x + var@16 := move var@17 == 3: i32 ] **Context**: @@ -54252,63 +112976,103 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> 3: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@4 := copy y; - var@0 := copy var@3 - copy var@4; - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> 3: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@17 -[Debug] -**About to evaluate statement**: [ - var@4 := copy y -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 -> ⊥ : u32 ; - var@5 -> ⊥ : (u32, bool) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +3: i32 [Debug] **About to evaluate statement**: [ - var@0 := copy var@3 - copy var@4; + var@15 := ¬ move var@16; + assert(¬move var@15); return ] @@ -54318,19 +113082,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> true ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@0 := copy var@3 - copy var@4 + var@15 := ¬ move var@16 ] **Context**: @@ -54339,43 +113118,68 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> true ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> true ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@16 -[Debug] test_function_symbolic: div_test [Debug] **About to evaluate statement**: [ - var@3 := copy x; - var@4 := copy y; - var@0 := move var@3 / move var@4; + assert(¬move var@15); return ] @@ -54385,19 +113189,34 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> false ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@3 := copy x + assert(¬move var@15) ] **Context**: @@ -54406,42 +113225,68 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> false ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@4 := copy y; - var@0 := move var@3 / move var@4; - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> false ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@15 [Debug] **About to evaluate statement**: [ - var@4 := copy y + return ] **Context**: @@ -54450,19 +113295,51 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 3: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] test_unit_function: id_mut_mut_test3 [Debug] **About to evaluate statement**: [ - var@0 := move var@3 / move var@4; + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -54472,19 +113349,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@0 := move var@3 / move var@4 + x := 0: i32 ] **Context**: @@ -54493,43 +113378,69 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> s@2 : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } +- op: +0: i32 -[Debug] test_function_symbolic: rem_test [Debug] **About to evaluate statement**: [ - var@3 := copy x; - var@4 := copy y; - var@0 := move var@3 % move var@4; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -54539,19 +113450,27 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@3 := copy x + px := &mut x ] **Context**: @@ -54560,20 +113479,41 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@4 := copy y; - var@0 := move var@3 % move var@4; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -54583,19 +113523,27 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@4 := copy y + ppx := &mut px ] **Context**: @@ -54604,19 +113552,40 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@0 : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@0 := move var@3 % move var@4; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -54626,19 +113595,27 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@0 := move var@3 % move var@4 + var@5 := &two-phase *(ppx) ] **Context**: @@ -54647,18 +113624,39 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -54668,32 +113666,27 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> s@2 : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : u32 ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -[Debug] test_function_symbolic: test2 [Debug] **About to evaluate statement**: [ - x := 23: u32; - y := 44: u32; - z := 67: u32; - var@5 := copy x; - (p).x := move var@5; - (p).y := 67: u32; - (s as test1::Sum::Right).0 := true; - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); - return + ppy := move id_mut_mut(move var@5) ] **Context**: @@ -54702,243 +113695,313 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - x := 23: u32 -] - -**Context**: +[Debug] activate_inactivated_mut_borrow: resulting value: +&mut@0 (0: i32) +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ - y := 44: u32; - z := 67: u32; - var@5 := copy x; - (p).x := move var@5; - (p).y := 67: u32; - (s as test1::Sum::Right).0 := true; - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); + var@2 := &mut *(x); + var@0 := &mut *(var@2); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - y := 44: u32 + var@2 := &mut *(x) ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> ⊥ : u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - z := 67: u32; - var@5 := copy x; - (p).x := move var@5; - (p).y := 67: u32; - (s as test1::Sum::Right).0 := true; - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); + var@0 := &mut *(var@2); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; } [Debug] **About to evaluate statement**: [ - z := 67: u32 + var@0 := &mut *(var@2) ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> ⊥ : u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (&mut@0 (0: i32)) ; } [Debug] **About to evaluate statement**: [ - var@5 := copy x; - (p).x := move var@5; - (p).y := 67: u32; - (s as test1::Sum::Right).0 := true; - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } +# Frame 1: +{ + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; +} -[Debug] -**About to evaluate statement**: [ - var@5 := copy x -] -**Context**: +[Debug] ctx_pop_frame: # Ended regions: {} -# 1 frame(s) +# 2 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; +} + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 2 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> ⊥ : u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + +# Frame 1: +{ + Some (var@0) -> &mut@4 (&mut@0 (0: i32)) ; + Some (x) -> &mut@2 (⌊mut@3⌋) ; + Some (var@2) -> &mut@3 (⌊mut@4⌋) ; } +- op: +move var@0 [Debug] **About to evaluate statement**: [ - (p).x := move var@5; - (p).y := 67: u32; - (s as test1::Sum::Right).0 := true; - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -54948,24 +114011,30 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> 23: u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } [Debug] **About to evaluate statement**: [ - (p).x := move var@5 + *(*(ppy)) := 1: i32 ] **Context**: @@ -54974,61 +114043,71 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> 23: u32 ; - y -> 44: u32 ; - z -> 67: u32 ; - p -> ⊥ : test1::Pair ; - var@5 -> 23: u32 ; - s -> ⊥ : test1::Sum ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -[Debug] expand_bottom_value_from_projection: -pe: (Expressions.Field ((Expressions.ProjAdt (0, None)), 0)) -ty: (Types.Adt ((Types.AdtId 0), [], - [(Types.Integer Types.U32); (Types.Integer Types.U32)])) -[Debug] -**About to evaluate statement**: [ - (p).y := 67: u32; - (s as test1::Sum::Right).0 := true; - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); - return -] - -**Context**: +[Debug] 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (0: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ - (p).y := 67: u32 + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return ] **Context**: @@ -55037,30 +114116,30 @@ ty: (Types.Adt ((Types.AdtId 0), [], # 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } [Debug] **About to evaluate statement**: [ - (s as test1::Sum::Right).0 := true; - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); - return + var@7 := &two-phase *(ppy) ] **Context**: @@ -55069,24 +114148,40 @@ ty: (Types.Adt ((Types.AdtId 0), [], # 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } [Debug] **About to evaluate statement**: [ - (s as test1::Sum::Right).0 := true + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return ] **Context**: @@ -55095,32 +114190,30 @@ ty: (Types.Adt ((Types.AdtId 0), [], # 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 ; - o -> ⊥ : test1::One ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (@shared_loan({5}, &mut@0 (1: i32))) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⌊inactivated_mut@5⌋ ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -[Debug] 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])) [Debug] **About to evaluate statement**: [ - set_discriminant(s, 1); - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); - return + ppz := move id_mut_mut(move var@7) ] **Context**: @@ -55129,245 +114222,338 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) # 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (@shared_loan({5}, &mut@0 (1: i32))) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⌊inactivated_mut@5⌋ ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } -[Debug] -**About to evaluate statement**: [ - set_discriminant(s, 1) -] - -**Context**: +[Debug] activate_inactivated_mut_borrow: resulting value: +&mut@0 (1: i32) +[Debug] 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> &mut@5 (&mut@0 (1: i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +- op: +move var@7 [Debug] **About to evaluate statement**: [ - (o as test1::One::One).0 := 3: u64; - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); + var@2 := &mut *(x); + var@0 := &mut *(var@2); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@5 (&mut@0 (1: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - (o as test1::One::One).0 := 3: u64 + var@2 := &mut *(x) ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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 ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@5 (&mut@0 (1: i32)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] expand_bottom_value_from_projection: -pe: (Expressions.Field ((Expressions.ProjAdt (2, (Some 0))), 0)) -ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) [Debug] **About to evaluate statement**: [ - set_discriminant(o, 0); - set_discriminant(e0, 0); - set_discriminant(enum0, 0); + var@0 := &mut *(var@2); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@5 (⌊mut@6⌋) ; + Some (var@2) -> &mut@6 (&mut@0 (1: i32)) ; } [Debug] **About to evaluate statement**: [ - set_discriminant(o, 0) + var@0 := &mut *(var@2) ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + +# Frame 1: +{ + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (x) -> &mut@5 (⌊mut@6⌋) ; + Some (var@2) -> &mut@6 (&mut@0 (1: i32)) ; } [Debug] **About to evaluate statement**: [ - set_discriminant(e0, 0); - set_discriminant(enum0, 0); return ] **Context**: # Ended regions: {} -# 1 frame(s) +# 2 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +# Frame 1: +{ + Some (var@0) -> &mut@7 (&mut@0 (1: i32)) ; + Some (x) -> &mut@5 (⌊mut@6⌋) ; + Some (var@2) -> &mut@6 (⌊mut@7⌋) ; +} -[Debug] -**About to evaluate statement**: [ - set_discriminant(e0, 0) -] -**Context**: +[Debug] ctx_pop_frame: # Ended regions: {} -# 1 frame(s) +# 2 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::One { 0 = 3: u64; } ; - e0 -> ⊥ : test1::EmptyEnum ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; } +# Frame 1: +{ + Some (var@0) -> &mut@7 (&mut@0 (1: i32)) ; + Some (x) -> &mut@5 (⌊mut@6⌋) ; + Some (var@2) -> &mut@6 (⌊mut@7⌋) ; +} - -[Debug] -**About to evaluate statement**: [ - set_discriminant(enum0, 0); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} -# 1 frame(s) +# 2 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::One { 0 = 3: u64; } ; - e0 -> test1::EmptyEnum::Empty ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; +} + +# Frame 1: +{ + Some (var@0) -> &mut@7 (&mut@0 (1: i32)) ; + Some (x) -> &mut@5 (⌊mut@6⌋) ; + Some (var@2) -> &mut@6 (⌊mut@7⌋) ; } +- op: +move var@0 [Debug] **About to evaluate statement**: [ - set_discriminant(enum0, 0) + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return ] **Context**: @@ -55376,24 +114562,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> test1::EmptyEnum::Empty ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> ⊥ : test1::Enum ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (1: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } [Debug] **About to evaluate statement**: [ - return + *(*(ppz)) := 2: i32 ] **Context**: @@ -55402,55 +114597,74 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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::One { 0 = 3: u64; } ; - e0 -> test1::EmptyEnum::Empty ; - e1 -> ⊥ : test1::EmptyEnum ; - enum0 -> test1::Enum::Variant1 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (1: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } -[Debug] test_function_symbolic: get_max -[Debug] -**About to evaluate statement**: [ - var@4 := copy x; - var@5 := copy y; - var@3 := move var@4 >= move var@5; - if (move var@3) { - var@0 := copy x - } - else { - var@0 := copy y - }; - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (1: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - var@4 := copy x + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return ] **Context**: @@ -55459,27 +114673,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } [Debug] **About to evaluate statement**: [ - var@5 := copy y; - var@3 := move var@4 >= move var@5; - if (move var@3) { - var@0 := copy x - } - else { - var@0 := copy y - }; - return + var@10 := copy *(px) ] **Context**: @@ -55488,350 +114708,903 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> s@0 : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } -[Debug] -**About to evaluate statement**: [ - var@5 := copy y -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } +- op: +copy *(px) -[Debug] -**About to evaluate statement**: [ - var@3 := move var@4 >= move var@5; - if (move var@3) { - var@0 := copy x - } - else { - var@0 := copy y - }; - return -] +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; +} + +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) +[Debug] end borrow: 2: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 3)) +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; +} -[Debug] -**About to evaluate statement**: [ - var@3 := move var@4 >= move var@5 -] +[Debug] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 4)) +[Debug] end borrow: 4: +- original context: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; +} + +[Debug] end borrow: 4: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 5)) +[Debug] end borrow: 5: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> s@0 : u32 ; - var@5 -> s@1 : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } +[Debug] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 6)) +[Debug] end borrow: 6: +- original context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; +} -[Debug] -**About to evaluate statement**: [ - if (move var@3) { - var@0 := copy x - } - else { - var@0 := copy y - }; - return -] +[Debug] end borrow: 6: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 7)) +[Debug] end borrow: 7: +- original context: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@7 (&mut@0 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; +} + +[Debug] give_back: +- bid: 7 +- content: &mut@7 (&mut@0 (2: i32)) +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@2 : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; } +[Debug] give_back_value: +- bid: 7 +- value: &mut@0 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (⌊mut@7⌋) ; +} -[Debug] -**About to evaluate statement**: [ - if (move var@3) { - var@0 := copy x - } - else { - var@0 := copy y - } -] -**Context**: +[Debug] end borrow: 6: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> s@2 : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> &mut@6 (&mut@0 (2: i32)) ; } +[Debug] give_back: +- bid: 6 +- content: &mut@6 (&mut@0 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -[Debug] -**About to evaluate statement**: [ - var@0 := copy x -] -**Context**: +[Debug] give_back_value: +- bid: 6 +- value: &mut@0 (2: i32) +- context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (⌊mut@6⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] end borrow: 5: +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - var@0 := copy y -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@5 (&mut@0 (2: i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -**Context**: +[Debug] give_back: +- bid: 5 +- content: &mut@5 (&mut@0 (2: i32)) +- context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back_value: +- bid: 5 +- value: &mut@0 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - return -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -**Context**: + +[Debug] end borrow: 4: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> s@0 : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@4 (&mut@0 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back: +- bid: 4 +- content: &mut@4 (&mut@0 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -[Debug] -**About to evaluate statement**: [ - return -] -**Context**: +[Debug] give_back_value: +- bid: 4 +- value: &mut@0 (2: i32) +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> s@1 : u32 ; - x -> s@0 : u32 ; - y -> s@1 : u32 ; - var@3 -> ⊥ : bool ; - var@4 -> ⊥ : u32 ; - var@5 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (⌊mut@4⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] test_function_symbolic: test3 -[Debug] -**About to evaluate statement**: [ - x := move get_max(4: u32, 3: u32); - y := move get_max(10: u32, 11: u32); - var@4 := copy x; - var@5 := copy y; - z := copy var@4 + copy var@5; - var@9 := copy z; - var@8 := move var@9 == 15: u32; - var@7 := ¬ move var@8; - assert(¬move var@7); - return -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> &mut@3 (&mut@0 (2: i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -**Context**: +[Debug] give_back: +- bid: 3 +- content: &mut@3 (&mut@0 (2: i32)) +- context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back_value: +- bid: 3 +- value: &mut@0 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - x := move get_max(4: u32, 3: u32) -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (⌊mut@3⌋) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -**Context**: + +[Debug] end borrow: 2: +- original context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> &mut@2 (&mut@0 (2: i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back: +- bid: 2 +- content: &mut@2 (&mut@0 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -[Debug] -**About to evaluate statement**: [ - y := move get_max(10: u32, 11: u32); - var@4 := copy x; - var@5 := copy y; - z := copy var@4 + copy var@5; - var@9 := copy z; - var@8 := move var@9 == 15: u32; - var@7 := ¬ move var@8; - assert(¬move var@7); - return -] -**Context**: +[Debug] give_back_value: +- bid: 2 +- value: &mut@0 (2: i32) +- context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - y := move get_max(10: u32, 11: u32) -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (2: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -**Context**: +[Debug] give_back: +- bid: 1 +- content: &mut@1 (&mut@0 (2: i32)) +- context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back_value: +- bid: 1 +- value: &mut@0 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + [Debug] **About to evaluate statement**: [ - var@4 := copy x; - var@5 := copy y; - z := copy var@4 + copy var@5; - var@9 := copy z; - var@8 := move var@9 == 15: u32; - var@7 := ¬ move var@8; - assert(¬move var@7); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -55841,23 +115614,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> 2: i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@4 := copy x + var@9 := move var@10 == 2: i32 ] **Context**: @@ -55866,83 +115649,104 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> 2: i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@5 := copy y; - z := copy var@4 + copy var@5; - var@9 := copy z; - var@8 := move var@9 == 15: u32; - var@7 := ¬ move var@8; - assert(¬move var@7); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> 2: i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@10 -[Debug] -**About to evaluate statement**: [ - var@5 := copy y -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - z := copy var@4 + copy var@5; - var@9 := copy z; - var@8 := move var@9 == 15: u32; - var@7 := ¬ move var@8; - assert(¬move var@7); + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -55952,23 +115756,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - z := copy var@4 + copy var@5 + var@8 := ¬ move var@9 ] **Context**: @@ -55977,52 +115791,71 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@9 := copy z; - var@8 := move var@9 == 15: u32; - var@7 := ¬ move var@8; - assert(¬move var@7); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@9 [Debug] **About to evaluate statement**: [ - var@9 := copy z + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return ] **Context**: @@ -56031,26 +115864,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@8 := move var@9 == 15: u32; - var@7 := ¬ move var@8; - assert(¬move var@7); - return + assert(¬move var@8) ] **Context**: @@ -56059,49 +115899,69 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@8 := move var@9 == 15: u32 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@8 [Debug] **About to evaluate statement**: [ - var@7 := ¬ move var@8; - assert(¬move var@7); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -56111,23 +115971,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@7 := ¬ move var@8 + var@13 := copy x ] **Context**: @@ -56136,103 +116006,161 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@7); - return -] - -**Context**: +[Debug] 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 -> s@4 : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +copy x -[Debug] -**About to evaluate statement**: [ - assert(¬move var@7) -] - -**Context**: +[Debug] end borrow: 0: +- original context: # 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 -> s@4 : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : u32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] give_back: +- bid: 0 +- content: &mut@0 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} -[Debug] -**About to evaluate statement**: [ - return -] -**Context**: +[Debug] give_back_value: +- bid: 0 +- value: 2: i32 +- context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } - -[Debug] test_function_symbolic: test_neg [Debug] **About to evaluate statement**: [ - var@2 := copy x; - var@3 := copy var@2 == -2147483648: i32; - assert(¬move var@3); - var@0 := - move var@2; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -56242,17 +116170,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> ⊥ : i32 ; - var@3 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> 2: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@2 := copy x + var@12 := move var@13 == 2: i32 ] **Context**: @@ -56261,59 +116205,100 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> ⊥ : i32 ; - var@3 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> 2: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - var@3 := copy var@2 == -2147483648: i32; - assert(¬move var@3); - var@0 := - move var@2; - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> 2: i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@13 -[Debug] -**About to evaluate statement**: [ - var@3 := copy var@2 == -2147483648: i32 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - assert(¬move var@3); - var@0 := - move var@2; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -56323,17 +116308,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> s@1 : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> true ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@3) + var@11 := ¬ move var@12 ] **Context**: @@ -56342,17 +116343,66 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> s@1 : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> true ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> true ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@12 [Debug] **About to evaluate statement**: [ - var@0 := - move var@2; + assert(¬move var@11); return ] @@ -56362,17 +116412,33 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> false ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } [Debug] **About to evaluate statement**: [ - var@0 := - move var@2 + assert(¬move var@11) ] **Context**: @@ -56381,38 +116447,65 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; - var@2 -> s@0 : i32 ; - var@3 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> false ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> s@2 : i32 ; - x -> s@0 : i32 ; - var@2 -> ⊥ : i32 ; - var@3 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> false ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +- op: +move var@11 -[Debug] test_function_symbolic: test_neg1 [Debug] **About to evaluate statement**: [ - x := 3: i32; - y := -3: i32; return ] @@ -56422,16 +116515,37 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; + None -> ⊥ : &'_ mut (&'_ mut (i32)) ; } +[Debug] test_function_symbolic: add_test [Debug] **About to evaluate statement**: [ - x := 3: i32 + var@3 := copy x; + var@4 := copy y; + var@0 := copy var@3 + copy var@4; + return ] **Context**: @@ -56440,17 +116554,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - y := -3: i32; - return + var@3 := copy x ] **Context**: @@ -56459,33 +116575,39 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] -**About to evaluate statement**: [ - y := -3: i32 -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +- op: +copy x [Debug] **About to evaluate statement**: [ + var@4 := copy y; + var@0 := copy var@3 + copy var@4; return ] @@ -56495,25 +116617,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 3: i32 ; - y -> -3: i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] test_function_symbolic: refs_test1 [Debug] **About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; - *(*(ppx)) := 1: i32; - var@6 := copy x; - var@5 := move var@6 == 1: i32; - var@4 := ¬ move var@5; - assert(¬move var@4); - return + var@4 := copy y ] **Context**: @@ -56522,48 +116638,38 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⊥ : i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] -**About to evaluate statement**: [ - x := 0: i32 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +- op: +copy y [Debug] **About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - *(*(ppx)) := 1: i32; - var@6 := copy x; - var@5 := move var@6 == 1: i32; - var@4 := ¬ move var@5; - assert(¬move var@4); + var@0 := copy var@3 + copy var@4; return ] @@ -56573,20 +116679,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - px := &mut x + var@0 := copy var@3 + copy var@4 ] **Context**: @@ -56595,74 +116700,56 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] -**About to evaluate statement**: [ - ppx := &mut px; - *(*(ppx)) := 1: i32; - var@6 := copy x; - var@5 := move var@6 == 1: i32; - var@4 := ¬ move var@5; - assert(¬move var@4); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> &mut@0 (0: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +- op: +copy var@3 -[Debug] -**About to evaluate statement**: [ - ppx := &mut px -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> &mut@0 (0: i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +- op: +copy var@4 [Debug] **About to evaluate statement**: [ - *(*(ppx)) := 1: i32; - var@6 := copy x; - var@5 := move var@6 == 1: i32; - var@4 := ¬ move var@5; - assert(¬move var@4); return ] @@ -56672,20 +116759,23 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> s@2 : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +[Debug] test_function_symbolic: subs_test [Debug] **About to evaluate statement**: [ - *(*(ppx)) := 1: i32 + var@3 := copy x; + var@4 := copy y; + var@0 := copy var@3 - copy var@4; + return ] **Context**: @@ -56694,24 +116784,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - var@6 := copy x; - var@5 := move var@6 == 1: i32; - var@4 := ¬ move var@5; - assert(¬move var@4); - return + var@3 := copy x ] **Context**: @@ -56720,44 +116805,39 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] -**About to evaluate statement**: [ - var@6 := copy x -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - var@5 := move var@6 == 1: i32; - var@4 := ¬ move var@5; - assert(¬move var@4); + var@4 := copy y; + var@0 := copy var@3 - copy var@4; return ] @@ -56767,20 +116847,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> 1: i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - var@5 := move var@6 == 1: i32 + var@4 := copy y ] **Context**: @@ -56789,44 +116868,39 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> 1: i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] -**About to evaluate statement**: [ - var@4 := ¬ move var@5; - assert(¬move var@4); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +- op: +copy y [Debug] **About to evaluate statement**: [ - var@4 := ¬ move var@5 + var@0 := copy var@3 - copy var@4; + return ] **Context**: @@ -56835,21 +116909,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@4); - return + var@0 := copy var@3 - copy var@4 ] **Context**: @@ -56858,38 +116930,53 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> s@1 : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@4) -] +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@3 + +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> s@1 : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } +- op: +copy var@4 [Debug] **About to evaluate statement**: [ @@ -56902,44 +116989,22 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⊥ : &'_ mut (i32) ; - ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; + Some (var@0) -> s@2 : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : (u32, bool) ; } -[Debug] test_function_symbolic: refs_test2 +[Debug] test_function_symbolic: div_test [Debug] **About to evaluate statement**: [ - x := 0: i32; - y := 1: i32; - px := &mut x; - py := &mut y; - ppx := &mut px; - var@6 := &mut *(py); - *(ppx) := move var@6; - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + var@3 := copy x; + var@4 := copy y; + var@0 := move var@3 / move var@4; return ] @@ -56949,32 +117014,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - x := 0: i32 + var@3 := copy x ] **Context**: @@ -56983,54 +117035,39 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - y := 1: i32; - px := &mut x; - py := &mut y; - ppx := &mut px; - var@6 := &mut *(py); - *(ppx) := move var@6; - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + var@4 := copy y; + var@0 := move var@3 / move var@4; return ] @@ -57040,32 +117077,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - y := 1: i32 + var@4 := copy y ] **Context**: @@ -57074,88 +117098,39 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } -[Debug] -**About to evaluate statement**: [ - px := &mut x; - py := &mut y; - ppx := &mut px; - var@6 := &mut *(py); - *(ppx) := move var@6; - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 1: 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +copy y [Debug] **About to evaluate statement**: [ - px := &mut x + var@0 := move var@3 / move var@4; + return ] **Context**: @@ -57164,53 +117139,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - y -> 1: 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - py := &mut y; - ppx := &mut px; - var@6 := &mut *(py); - *(ppx) := move var@6; - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return + var@0 := move var@3 / move var@4 ] **Context**: @@ -57219,120 +117160,57 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 1: i32 ; - px -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } -[Debug] -**About to evaluate statement**: [ - py := &mut y -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 1: i32 ; - px -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +move var@3 -[Debug] -**About to evaluate statement**: [ - ppx := &mut px; - var@6 := &mut *(py); - *(ppx) := move var@6; - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> &mut@0 (0: i32) ; - py -> &mut@1 (1: 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +move var@4 [Debug] **About to evaluate statement**: [ - ppx := &mut px + return ] **Context**: @@ -57341,50 +117219,22 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> &mut@0 (0: i32) ; - py -> &mut@1 (1: 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 ; + Some (var@0) -> s@2 : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } +[Debug] test_function_symbolic: rem_test [Debug] **About to evaluate statement**: [ - var@6 := &mut *(py); - *(ppx) := move var@6; - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + var@3 := copy x; + var@4 := copy y; + var@0 := move var@3 % move var@4; return ] @@ -57394,32 +117244,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (1: i32) ; - ppx -> &mut@2 (&mut@0 (0: 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - var@6 := &mut *(py) + var@3 := copy x ] **Context**: @@ -57428,84 +117265,40 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@1⌋ ; - px -> ⌊mut@2⌋ ; - py -> &mut@1 (1: i32) ; - ppx -> &mut@2 (&mut@0 (0: 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } -[Debug] -**About to evaluate statement**: [ - *(ppx) := move var@6; - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - *(ppx) := move var@6 + var@4 := copy y; + var@0 := move var@3 % move var@4; + return ] **Context**: @@ -57514,49 +117307,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - *(*(ppx)) := 2: i32; - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return + var@4 := copy y ] **Context**: @@ -57565,81 +117328,38 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } -[Debug] -**About to evaluate statement**: [ - *(*(ppx)) := 2: i32 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +copy y [Debug] **About to evaluate statement**: [ - var@9 := copy *(px); - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + var@0 := move var@3 % move var@4; return ] @@ -57649,32 +117369,19 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - var@9 := copy *(px) + var@0 := move var@3 % move var@4 ] **Context**: @@ -57683,128 +117390,56 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } -[Debug] -**About to evaluate statement**: [ - var@8 := move var@9 == 2: i32; - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@0 : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +move var@3 -[Debug] -**About to evaluate statement**: [ - var@8 := move var@9 == 2: i32 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> s@1 : u32 ; + Some (var@5) -> ⊥ : bool ; } +- op: +move var@4 [Debug] **About to evaluate statement**: [ - var@7 := ¬ move var@8; - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); return ] @@ -57814,32 +117449,32 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> s@2 : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : bool ; } +[Debug] test_function_symbolic: test2 [Debug] **About to evaluate statement**: [ - var@7 := ¬ move var@8 + x := 23: u32; + y := 44: u32; + z := 67: u32; + var@5 := copy x; + (p).x := move var@5; + (p).y := 67: u32; + (s as test1::Sum::Right).0 := true; + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return ] **Context**: @@ -57848,45 +117483,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@7); - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return + x := 23: u32 ] **Context**: @@ -57895,77 +117509,58 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 -> s@1 : 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@7) -] - -**Context**: +[Debug] 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 -> s@1 : 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +23: u32 [Debug] **About to evaluate statement**: [ - var@12 := copy x; - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + y := 44: u32; + z := 67: u32; + var@5 := copy x; + (p).x := move var@5; + (p).y := 67: u32; + (s as test1::Sum::Right).0 := true; + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); return ] @@ -57975,32 +117570,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@12 := copy x + y := 44: u32 ] **Context**: @@ -58009,77 +117596,58 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - var@11 := move var@12 == 0: i32; - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +44: u32 [Debug] **About to evaluate statement**: [ - var@11 := move var@12 == 0: i32 + z := 67: u32; + var@5 := copy x; + (p).x := move var@5; + (p).y := 67: u32; + (s as test1::Sum::Right).0 := true; + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return ] **Context**: @@ -58088,42 +117656,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@10 := ¬ move var@11; - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return + z := 67: u32 ] **Context**: @@ -58132,74 +117682,56 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - var@10 := ¬ move var@11 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> ⊥ : u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +67: u32 [Debug] **About to evaluate statement**: [ - assert(¬move var@10); - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + var@5 := copy x; + (p).x := move var@5; + (p).y := 67: u32; + (s as test1::Sum::Right).0 := true; + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); return ] @@ -58209,32 +117741,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 -> s@3 : 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@10) + var@5 := copy x ] **Context**: @@ -58243,74 +117767,56 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 -> s@3 : 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - var@15 := copy *(py); - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - var@15 := copy *(py) + (p).x := move var@5; + (p).y := 67: u32; + (s as test1::Sum::Right).0 := true; + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return ] **Context**: @@ -58319,39 +117825,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> 23: u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@14 := move var@15 == 2: i32; - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return + (p).x := move var@5 ] **Context**: @@ -58360,71 +117851,58 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> 23: u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - var@14 := move var@15 == 2: i32 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> ⊥ : test1::Pair ; + Some (var@5) -> 23: u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +move var@5 +[Debug] expand_bottom_value_from_projection: +pe: (Expressions.Field ((Expressions.ProjAdt (0, None)), 0)) +ty: (Types.Adt ((Types.AdtId 0), [], + [(Types.Integer Types.U32); (Types.Integer Types.U32)])) [Debug] **About to evaluate statement**: [ - var@13 := ¬ move var@14; - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + (p).y := 67: u32; + (s as test1::Sum::Right).0 := true; + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); return ] @@ -58434,32 +117912,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@13 := ¬ move var@14 + (p).y := 67: u32 ] **Context**: @@ -58468,71 +117938,54 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@13); - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] - -**Context**: +[Debug] 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 -> s@5 : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +67: u32 [Debug] **About to evaluate statement**: [ - assert(¬move var@13) + (s as test1::Sum::Right).0 := true; + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return ] **Context**: @@ -58541,36 +117994,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 -> s@5 : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@18 := copy y; - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return + (s as test1::Sum::Right).0 := true ] **Context**: @@ -58579,68 +118020,55 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - var@18 := copy y -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> ⊥ : test1::Sum ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +true +[Debug] 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])) [Debug] **About to evaluate statement**: [ - var@17 := move var@18 == 2: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); + set_discriminant(s, 1); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); return ] @@ -58650,32 +118078,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@17 := move var@18 == 2: i32 + set_discriminant(s, 1) ] **Context**: @@ -58684,33 +118104,27 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@16 := ¬ move var@17; - assert(¬move var@16); + (o as test1::One::One).0 := 3: u64; + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); return ] @@ -58720,32 +118134,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@16 := ¬ move var@17 + (o as test1::One::One).0 := 3: u64 ] **Context**: @@ -58754,67 +118160,54 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@16); - return -] - -**Context**: +[Debug] 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 -> s@7 : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> ⊥ : test1::One ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } +- op: +3: u64 +[Debug] expand_bottom_value_from_projection: +pe: (Expressions.Field ((Expressions.ProjAdt (2, (Some 0))), 0)) +ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) [Debug] **About to evaluate statement**: [ - assert(¬move var@16) + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return ] **Context**: @@ -58823,32 +118216,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 -> s@7 : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - return + set_discriminant(o, 0) ] **Context**: @@ -58857,38 +118242,25 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] test_function_symbolic: test_list1 [Debug] **About to evaluate statement**: [ - set_discriminant(var@3, 1); - var@2 := move alloc::boxed::Box>::new(move var@3); - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - drop(l); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); return ] @@ -58898,17 +118270,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - set_discriminant(var@3, 1) + set_discriminant(e0, 0) ] **Context**: @@ -58917,21 +118296,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> ⊥ : test1::EmptyEnum ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@2 := move alloc::boxed::Box>::new(move var@3); - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - drop(l); + set_discriminant(enum0, 0); return ] @@ -58941,17 +118323,24 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> test1::EmptyEnum::Empty ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } [Debug] **About to evaluate statement**: [ - var@2 := move alloc::boxed::Box>::new(move var@3) + set_discriminant(enum0, 0) ] **Context**: @@ -58960,25 +118349,23 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> test1::EmptyEnum::Empty ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> ⊥ : test1::Enum ; } -[Debug] eval_non_local_function_call: -- fid:CfimAst.BoxNew -- type_params: [test1::List] -- args: [move var@3] -- dest: var@2 [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - drop(l); return ] @@ -58988,42 +118375,55 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 23: u32 ; + Some (y) -> 44: u32 ; + Some (z) -> 67: u32 ; + Some (p) -> test1::Pair { x = 23: u32; y = 67: u32; } ; + Some (var@5) -> ⊥ : u32 ; + Some (s) -> test1::Sum::Right { 0 = true; } ; + Some (o) -> test1::One::One { 0 = 3: u64; } ; + Some (e0) -> test1::EmptyEnum::Empty ; + Some (e1) -> ⊥ : test1::EmptyEnum ; + Some (enum0) -> test1::Enum::Variant1 ; } +[Debug] test_function_symbolic: get_max [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).0 := 0: i32 -] - + var@4 := copy x; + var@5 := copy y; + var@3 := move var@4 >= move var@5; + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; + return +] + **Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] expand_bottom_value_from_projection: -pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) -ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - drop(l); - return + var@4 := copy x ] **Context**: @@ -59032,37 +118432,45 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - (l as test1::List::Cons).1 := move var@2 -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - set_discriminant(l, 0); - drop(l); + var@5 := copy y; + var@3 := move var@4 >= move var@5; + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; return ] @@ -59072,17 +118480,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - set_discriminant(l, 0) + var@5 := copy y ] **Context**: @@ -59091,37 +118501,45 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - drop(l); - return -] - -**Context**: +[Debug] 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>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +copy y [Debug] **About to evaluate statement**: [ - drop(l) + var@3 := move var@4 >= move var@5; + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; + return ] **Context**: @@ -59130,18 +118548,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; } -[Debug] drop_value: place: l [Debug] **About to evaluate statement**: [ - return + var@3 := move var@4 >= move var@5 ] **Context**: @@ -59150,91 +118569,62 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; } -[Debug] test_function_symbolic: test_box1 -[Debug] -**About to evaluate statement**: [ - b := move alloc::boxed::Box::new(0: i32); - var@3 := &two-phase b; - x := move core::ops::deref::DerefMut::deref_mut(move var@3); - *(x) := 1: i32; - var@5 := &b; - x := move core::ops::deref::Deref>::deref(move var@5); - var@8 := copy *(x); - var@7 := move var@8 == 1: i32; - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; } +- op: +move var@4 -[Debug] -**About to evaluate statement**: [ - b := move alloc::boxed::Box::new(0: i32) -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> s@1 : u32 ; } +- op: +move var@5 -[Debug] eval_non_local_function_call: -- fid:CfimAst.BoxNew -- type_params: [i32] -- args: [0: i32] -- dest: b [Debug] **About to evaluate statement**: [ - var@3 := &two-phase b; - x := move core::ops::deref::DerefMut::deref_mut(move var@3); - *(x) := 1: i32; - var@5 := &b; - x := move core::ops::deref::Deref>::deref(move var@5); - var@8 := copy *(x); - var@7 := move var@8 == 1: i32; - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; return ] @@ -59244,22 +118634,24 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> s@0 : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@2 : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - var@3 := &two-phase b + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + } ] **Context**: @@ -59268,55 +118660,38 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> s@0 : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> s@2 : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - x := move core::ops::deref::DerefMut::deref_mut(move var@3); - *(x) := 1: i32; - var@5 := &b; - x := move core::ops::deref::Deref>::deref(move var@5); - var@8 := copy *(x); - var@7 := move var@8 == 1: i32; - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({0}, s@0 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⌊inactivated_mut@0⌋ ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> true ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ - x := move core::ops::deref::DerefMut::deref_mut(move var@3) + var@0 := copy x ] **Context**: @@ -59325,153 +118700,96 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({0}, s@0 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⌊inactivated_mut@0⌋ ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] eval_non_local_function_call: -- fid:CfimAst.BoxDerefMut -- type_params: [i32] -- args: [move var@3] -- dest: x -[Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Symbolic - { Values.sv_id = 0; - sv_ty = - (Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)] - )) - }); - ty = - (Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) } -[Debug] -**About to evaluate statement**: [ - *(x) := 1: i32; - var@5 := &b; - x := move core::ops::deref::Deref>::deref(move var@5); - var@8 := copy *(x); - var@7 := move var@8 == 1: i32; - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> s@1 : &r@0 mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - proj_loans (s@1 : &r@0 mut (i32)) - } + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +copy x -[Debug] -**About to evaluate statement**: [ - *(x) := 1: i32 -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> s@1 : &r@0 mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - proj_loans (s@1 : &r@0 mut (i32)) - } + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> false ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +move var@3 -[Debug] expand_symbolic_value: s@1 : &r@0 mut (i32) +[Debug] +**About to evaluate statement**: [ + var@0 := copy y +] -- original context: +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> s@1 : &r@0 mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - proj_loans (s@1 : &r@0 mut (i32)) - } + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -- new context: + +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> &mut@1 (s@2 : i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - ⌊mut@1, proj_loans (s@2 : i32)⌋ - } + Some (var@0) -> ⊥ : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } +- op: +copy y + [Debug] **About to evaluate statement**: [ - var@5 := &b; - x := move core::ops::deref::Deref>::deref(move var@5); - var@8 := copy *(x); - var@7 := move var@8 == 1: i32; - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); return ] @@ -59481,26 +118799,19 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> &mut@1 (1: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - ⌊mut@1, proj_loans (s@2 : i32)⌋ - } + Some (var@0) -> s@0 : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - var@5 := &b + return ] **Context**: @@ -59509,665 +118820,518 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> &mut@1 (1: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - ⌊mut@1, proj_loans (s@2 : i32)⌋ - } + Some (var@0) -> s@1 : u32 ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; } -[Debug] 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) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - ⌊mut@1, proj_loans (s@2 : i32)⌋ - } -} +[Debug] test_function_symbolic: test3 +[Debug] +**About to evaluate statement**: [ + x := move get_max(4: u32, 3: u32); + y := move get_max(10: u32, 11: u32); + var@4 := copy x; + var@5 := copy y; + z := copy var@4 + copy var@5; + var@9 := copy z; + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); + return +] -[Debug] end_abstraction: 0 -- context after parent abstractions ended: +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> &mut@1 (1: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - ⌊mut@1, proj_loans (s@2 : i32)⌋ - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] 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) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) } - } -} -[Debug] end_abstraction: 0 -- original context: +[Debug] +**About to evaluate statement**: [ + x := move get_max(4: u32, 3: u32) +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> &mut@1 (1: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@0{parents={}}{regions={0}} { - &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), - ⌊mut@1, proj_loans (s@2 : i32)⌋ - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -- new context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> s@3 : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -[Debug] -**About to evaluate statement**: [ - x := move core::ops::deref::Deref>::deref(move var@5); - 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} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⌊shared@2⌋ ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +4: u32 -[Debug] -**About to evaluate statement**: [ - x := move core::ops::deref::Deref>::deref(move var@5) -] - -**Context**: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⌊shared@2⌋ ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +3: u32 -[Debug] eval_non_local_function_call: -- fid:CfimAst.BoxDeref -- type_params: [i32] -- args: [move var@5] -- dest: x [Debug] **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); + y := move get_max(10: u32, 11: u32); + var@4 := copy x; + var@5 := copy y; + z := copy var@4 + copy var@5; + var@9 := copy z; + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); return ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> s@4 : &r@1 (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - ⌊shared@2⌋, - proj_loans (s@4 : &r@1 (i32)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - var@8 := copy *(x) + y := move get_max(10: u32, 11: u32) ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> s@4 : &r@1 (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - ⌊shared@2⌋, - proj_loans (s@4 : &r@1 (i32)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] expand_symbolic_value: s@4 : &r@1 (i32) - -- original context: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> s@4 : &r@1 (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - ⌊shared@2⌋, - proj_loans (s@4 : &r@1 (i32)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -- new context: -# Ended regions: {0} +- op: +10: u32 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> ⊥ : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +11: u32 + [Debug] **About to evaluate statement**: [ - var@7 := move var@8 == 1: i32; - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); + var@4 := copy x; + var@5 := copy y; + z := copy var@4 + copy var@5; + var@9 := copy z; + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); return ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> s@5 : i32 ; - abs@1{parents={}}{regions={1}} { - ⌊shared@2⌋, - @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - var@7 := move var@8 == 1: i32 + var@4 := copy x ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> s@5 : i32 ; - abs@1{parents={}}{regions={1}} { - ⌊shared@2⌋, - @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - var@6 := ¬ move var@7; - assert(¬move var@6); - drop(b); - return -] - -**Context**: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> ⊥ : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - var@6 := ¬ move var@7 + var@5 := copy y; + z := copy var@4 + copy var@5; + var@9 := copy z; + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); + return ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@6); - drop(b); - return + var@5 := copy y ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> s@7 : 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@6) -] - -**Context**: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> s@7 : 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +copy y [Debug] **About to evaluate statement**: [ - drop(b); + z := copy var@4 + copy var@5; + var@9 := copy z; + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); return ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - drop(b) + z := copy var@4 + copy var@5 ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] drop_value: place: b -[Debug] end_abstraction: 1 -- original context: -# Ended regions: {0} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - 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)) - } -} - -[Debug] end_abstraction: 1 -- context after parent abstractions ended: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] end_abstraction: 1 -- context after loans ended: -# Ended regions: {0} -# 1 frame(s) -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; - abs@1{parents={}}{regions={1}} { - ⌊shared@2⌋, - @ended_shared_loan(s@5 : i32, proj_loans (s@5 : i32)) - } -} +- op: +copy var@4 -[Debug] end_abstraction: 1 -- original context: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, s@3 : std::boxed::Box) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - 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)) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> ⊥ : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -- new context: -# Ended regions: {0, 1} -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> s@3 : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} +- op: +copy var@5 [Debug] **About to evaluate statement**: [ + var@9 := copy z; + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); return ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - b -> ⊥ : std::boxed::Box ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] test_function_symbolic: copy_int [Debug] **About to evaluate statement**: [ - var@0 := copy x; - return + var@9 := copy z ] **Context**: @@ -60176,31 +119340,48 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - var@0 := copy x -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : i32 ; - x -> s@0 : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +copy z [Debug] **About to evaluate statement**: [ + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); return ] @@ -60210,25 +119391,23 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> s@0 : i32 ; - x -> s@0 : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@2 : u32 ; } -[Debug] test_function_symbolic: test_copy_int [Debug] **About to evaluate statement**: [ - x := 0: i32; - px := &x; - var@4 := copy x; - y := move copy_int(move var@4); - var@7 := copy *(px); - var@8 := copy y; - var@6 := move var@7 == move var@8; - var@5 := ¬ move var@6; - assert(¬move var@5); - return + var@8 := move var@9 == 15: u32 ] **Context**: @@ -60237,78 +119416,71 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@2 : u32 ; } -[Debug] -**About to evaluate statement**: [ - x := 0: i32 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@2 : u32 ; } +- op: +move var@9 -[Debug] -**About to evaluate statement**: [ - px := &x; - var@4 := copy x; - y := move copy_int(move var@4); - var@7 := copy *(px); - var@8 := copy y; - var@6 := move var@7 == move var@8; - var@5 := ¬ move var@6; - assert(¬move var@5); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ (i32) ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +15: u32 [Debug] **About to evaluate statement**: [ - px := &x + var@7 := ¬ move var@8; + assert(¬move var@7); + return ] **Context**: @@ -60317,29 +119489,23 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: i32 ; - px -> ⊥ : &'_ (i32) ; - y -> ⊥ : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@3 : bool ; + Some (var@9) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - var@4 := copy x; - y := move copy_int(move var@4); - var@7 := copy *(px); - var@8 := copy y; - var@6 := move var@7 == move var@8; - var@5 := ¬ move var@6; - assert(¬move var@5); - return + var@7 := ¬ move var@8 ] **Context**: @@ -60348,51 +119514,46 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@3 : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - var@4 := copy x -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@3 : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +move var@8 [Debug] **About to evaluate statement**: [ - y := move copy_int(move var@4); - var@7 := copy *(px); - var@8 := copy y; - var@6 := move var@7 == move var@8; - var@5 := ¬ move var@6; - assert(¬move var@5); + assert(¬move var@7); return ] @@ -60402,22 +119563,23 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> s@4 : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } [Debug] **About to evaluate statement**: [ - y := move copy_int(move var@4) + assert(¬move var@7) ] **Context**: @@ -60426,51 +119588,46 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> s@4 : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } -[Debug] -**About to evaluate statement**: [ - var@7 := copy *(px); - var@8 := copy y; - var@6 := move var@7 == move var@8; - var@5 := ¬ move var@6; - assert(¬move var@5); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +- op: +move var@7 [Debug] **About to evaluate statement**: [ - var@7 := copy *(px) + return ] **Context**: @@ -60479,25 +119636,27 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (y) -> s@1 : u32 ; + Some (z) -> s@2 : u32 ; + Some (var@4) -> s@0 : u32 ; + Some (var@5) -> s@1 : u32 ; + Some (var@6) -> ⊥ : (u32, bool) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : u32 ; } +[Debug] test_function_symbolic: test_neg [Debug] **About to evaluate statement**: [ - var@8 := copy y; - var@6 := move var@7 == move var@8; - var@5 := ¬ move var@6; - assert(¬move var@5); + var@2 := copy x; + var@3 := copy var@2 == -2147483648: i32; + assert(¬move var@3); + var@0 := - move var@2; return ] @@ -60507,22 +119666,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> ⊥ : i32 ; + Some (var@3) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - var@8 := copy y + var@2 := copy x ] **Context**: @@ -60531,49 +119685,37 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> ⊥ : i32 ; + Some (var@3) -> ⊥ : bool ; } -[Debug] -**About to evaluate statement**: [ - var@6 := move var@7 == move var@8; - var@5 := ¬ move var@6; - assert(¬move var@5); - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> ⊥ : i32 ; + Some (var@3) -> ⊥ : bool ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - var@6 := move var@7 == move var@8 + var@3 := copy var@2 == -2147483648: i32; + assert(¬move var@3); + var@0 := - move var@2; + return ] **Context**: @@ -60582,24 +119724,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> ⊥ : bool ; } [Debug] **About to evaluate statement**: [ - var@5 := ¬ move var@6; - assert(¬move var@5); - return + var@3 := copy var@2 == -2147483648: i32 ] **Context**: @@ -60608,71 +119743,53 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> ⊥ : bool ; } -[Debug] -**About to evaluate statement**: [ - var@5 := ¬ move var@6 -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> ⊥ : bool ; } +- op: +copy var@2 -[Debug] -**About to evaluate statement**: [ - assert(¬move var@5); - return -] - -**Context**: +[Debug] 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 -> s@2 : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> ⊥ : bool ; } +- op: +-2147483648: i32 [Debug] **About to evaluate statement**: [ - assert(¬move var@5) + assert(¬move var@3); + var@0 := - move var@2; + return ] **Context**: @@ -60681,22 +119798,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> @shared_loan({0}, 0: i32) ; - px -> ⌊shared@0⌋ ; - y -> s@0 : i32 ; - var@4 -> ⊥ : i32 ; - var@5 -> s@2 : bool ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : i32 ; - var@8 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> s@1 : bool ; } [Debug] **About to evaluate statement**: [ - return + assert(¬move var@3) ] **Context**: @@ -60705,56 +119817,35 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> s@1 : bool ; } -[Debug] test_function_symbolic: is_cons -[Debug] -**About to evaluate statement**: [ - var@2 := discriminant(*(l)); - switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } - }; - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - abs@0{parents={}}{regions={0}} { - proj_loans (s@0 : &r@0 (test1::List)) - } - var@0 -> ⊥ : bool ; - l -> s@0 : &r@0 (test1::List) ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> true ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ - var@2 := discriminant(*(l)) + var@0 := - move var@2; + return ] **Context**: @@ -60763,61 +119854,52 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - abs@0{parents={}}{regions={0}} { - proj_loans (s@0 : &r@0 (test1::List)) - } - var@0 -> ⊥ : bool ; - l -> s@0 : &r@0 (test1::List) ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> ⊥ : bool ; } -[Debug] expand_symbolic_value: s@0 : &r@0 (test1::List) +[Debug] +**About to evaluate statement**: [ + var@0 := - move var@2 +] -- original context: +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - abs@0{parents={}}{regions={0}} { - proj_loans (s@0 : &r@0 (test1::List)) - } - var@0 -> ⊥ : bool ; - l -> s@0 : &r@0 (test1::List) ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> ⊥ : bool ; } -- new context: + +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - abs@0{parents={}}{regions={0}} { - @shared_loan({0}, s@1 : test1::List, proj_loans (s@1 : test1::List)) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> s@0 : i32 ; + Some (var@3) -> ⊥ : bool ; } +- op: +move var@2 + [Debug] **About to evaluate statement**: [ - switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } - }; return ] @@ -60827,29 +119909,20 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> 0: isize ; + Some (var@0) -> s@2 : i32 ; + Some (x) -> s@0 : i32 ; + Some (var@2) -> ⊥ : i32 ; + Some (var@3) -> ⊥ : bool ; } +[Debug] test_function_symbolic: test_neg1 [Debug] **About to evaluate statement**: [ - switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } - } + x := 3: i32; + y := -3: i32; + return ] **Context**: @@ -60858,19 +119931,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> 0: isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@0 := true + x := 3: i32 ] **Context**: @@ -60879,50 +119949,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) - } - var@0 -> ⊥ : bool ; - l -> ⌊shared@0⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] 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::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) - } - var@0 -> true ; - l -> ⌊shared@0⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; } +- op: +3: i32 [Debug] **About to evaluate statement**: [ - switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } - }; + y := -3: i32; return ] @@ -60932,29 +119984,16 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } - } + y := -3: i32 ] **Context**: @@ -60963,36 +120002,28 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@0 := false -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> ⊥ : i32 ; } +- op: +-3: i32 [Debug] **About to evaluate statement**: [ @@ -61005,30 +120036,24 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Nil, test1::List::Nil) - } - var@0 -> false ; - l -> ⌊shared@0⌋ ; - var@2 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 3: i32 ; + Some (y) -> -3: i32 ; } -[Debug] test_function_symbolic: test_is_cons +[Debug] test_function_symbolic: refs_test1 [Debug] **About to evaluate statement**: [ - set_discriminant(var@3, 1); - var@2 := move alloc::boxed::Box>::new(move var@3); - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := &l; - var@6 := copy var@7; - var@5 := move is_cons(move var@6); + x := 0: i32; + px := &mut x; + ppx := &mut px; + *(*(ppx)) := 1: i32; + var@6 := copy x; + var@5 := move var@6 == 1: i32; var@4 := ¬ move var@5; assert(¬move var@4); - drop(l); return ] @@ -61038,21 +120063,20 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - set_discriminant(var@3, 1) + x := 0: i32 ] **Context**: @@ -61061,30 +120085,46 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +0: i32 [Debug] **About to evaluate statement**: [ - var@2 := move alloc::boxed::Box>::new(move var@3); - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := &l; - var@6 := copy var@7; - var@5 := move is_cons(move var@6); + px := &mut x; + ppx := &mut px; + *(*(ppx)) := 1: i32; + var@6 := copy x; + var@5 := move var@6 == 1: i32; var@4 := ¬ move var@5; assert(¬move var@4); - drop(l); return ] @@ -61094,21 +120134,20 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@2 := move alloc::boxed::Box>::new(move var@3) + px := &mut x ] **Context**: @@ -61117,34 +120156,25 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } -[Debug] eval_non_local_function_call: -- fid:CfimAst.BoxNew -- type_params: [test1::List] -- args: [move var@3] -- dest: var@2 [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := &l; - var@6 := copy var@7; - var@5 := move is_cons(move var@6); + ppx := &mut px; + *(*(ppx)) := 1: i32; + var@6 := copy x; + var@5 := move var@6 == 1: i32; var@4 := ¬ move var@5; assert(¬move var@4); - drop(l); return ] @@ -61154,21 +120184,20 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).0 := 0: i32 + ppx := &mut px ] **Context**: @@ -61177,31 +120206,24 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } -[Debug] expand_bottom_value_from_projection: -pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) -ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := &l; - var@6 := copy var@7; - var@5 := move is_cons(move var@6); + *(*(ppx)) := 1: i32; + var@6 := copy x; + var@5 := move var@6 == 1: i32; var@4 := ¬ move var@5; assert(¬move var@4); - drop(l); return ] @@ -61211,21 +120233,20 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).1 := move var@2 + *(*(ppx)) := 1: i32 ] **Context**: @@ -61234,27 +120255,43 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ - set_discriminant(l, 0); - var@7 := &l; - var@6 := copy var@7; - var@5 := move is_cons(move var@6); + var@6 := copy x; + var@5 := move var@6 == 1: i32; var@4 := ¬ move var@5; assert(¬move var@4); - drop(l); return ] @@ -61264,21 +120301,20 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - set_discriminant(l, 0) + var@6 := copy x ] **Context**: @@ -61287,127 +120323,167 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@7 := &l; - var@6 := copy var@7; - var@5 := move is_cons(move var@6); - var@4 := ¬ move var@5; - assert(¬move var@4); - drop(l); - return -] - -**Context**: +[Debug] 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>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +copy x -[Debug] -**About to evaluate statement**: [ - var@7 := &l -] +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterBorrows (InterpreterBorrowsCore.Borrow 1)) +[Debug] end borrow: 1: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (1: i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +[Debug] give_back: +- bid: 1 +- content: &mut@1 (&mut@0 (1: i32)) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} -[Debug] -**About to evaluate statement**: [ - var@6 := copy var@7; - var@5 := move is_cons(move var@6); - var@4 := ¬ move var@5; - assert(¬move var@4); - drop(l); - return -] -**Context**: +[Debug] give_back_value: +- bid: 1 +- value: &mut@0 (1: i32) +- context: # 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>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - var@6 := copy var@7 -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} -**Context**: +[Debug] give_back: +- bid: 0 +- content: &mut@0 (1: i32) +- context: # 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>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +[Debug] give_back_value: +- bid: 0 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + [Debug] **About to evaluate statement**: [ - var@5 := move is_cons(move var@6); + var@5 := move var@6 == 1: i32; var@4 := ¬ move var@5; assert(¬move var@4); - drop(l); return ] @@ -61417,21 +120493,20 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⌊shared@1⌋ ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> 1: i32 ; } [Debug] **About to evaluate statement**: [ - var@5 := move is_cons(move var@6) + var@5 := move var@6 == 1: i32 ] **Context**: @@ -61440,23 +120515,61 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⌊shared@1⌋ ; - var@7 -> ⌊shared@0⌋ ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> 1: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> 1: i32 ; +} + + +- op: +move var@6 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ var@4 := ¬ move var@5; assert(¬move var@4); - drop(l); return ] @@ -61466,18 +120579,13 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> s@1 : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> s@0 : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -61493,26 +120601,40 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> s@1 : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> s@0 : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> s@0 : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ assert(¬move var@4); - drop(l); return ] @@ -61522,18 +120644,13 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> s@2 : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> s@1 : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } @@ -61549,25 +120666,39 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> s@2 : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> s@1 : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +- op: +move var@4 [Debug] **About to evaluate statement**: [ - drop(l); return ] @@ -61577,25 +120708,45 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : i32 ; } +[Debug] test_function_symbolic: refs_test2 [Debug] **About to evaluate statement**: [ - drop(l) + x := 0: i32; + y := 1: i32; + px := &mut x; + py := &mut y; + ppx := &mut px; + var@6 := &mut *(py); + *(ppx) := move var@6; + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -61604,172 +120755,155 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] drop_value: place: l -[Debug] end_abstraction: 0 -- original context: +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: # 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>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] end_abstraction: 0 -- context after parent abstractions 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>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } -} -[Debug] end_abstraction: 0 -- context after loans ended: +[Debug] eval_operand: +- ctx: # 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>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] end_abstraction: 0 -- original context: -# 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>; }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; - abs@0{parents={}}{regions={0}} { - ⌊shared@1⌋, - proj_loans (s@1 : bool) - } -} - - -- 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>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; -} +- op: +0: i32 [Debug] **About to evaluate statement**: [ + y := 1: i32; + px := &mut x; + py := &mut y; + ppx := &mut px; + var@6 := &mut *(py); + *(ppx) := move var@6; + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] test_function_symbolic: split_list [Debug] **About to evaluate statement**: [ - var@8 := false; - var@7 := false; - var@7 := true; - var@8 := true; - var@2 := discriminant(l); - switch (move var@2) { - 0: isize => { - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return - } - _ => { - panic - } - } + y := 1: i32 ] **Context**: @@ -61778,70 +120912,86 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@8 := false -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +1: i32 [Debug] **About to evaluate statement**: [ - var@7 := false; - var@7 := true; - var@8 := true; - var@2 := discriminant(l); - switch (move var@2) { - 0: isize => { - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return - } - _ => { - panic - } - } + px := &mut x; + py := &mut y; + ppx := &mut px; + var@6 := &mut *(py); + *(ppx) := move var@6; + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -61850,24 +121000,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@7 := false + px := &mut x ] **Context**: @@ -61876,43 +121034,53 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> ⊥ : bool ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 1: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@7 := true; - var@8 := true; - var@2 := discriminant(l); - switch (move var@2) { - 0: isize => { - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return - } - _ => { - panic - } - } + py := &mut y; + ppx := &mut px; + var@6 := &mut *(py); + *(ppx) := move var@6; + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -61921,24 +121089,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 1: i32 ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@7 := true + py := &mut y ] **Context**: @@ -61947,42 +121123,52 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 1: i32 ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@8 := true; - var@2 := discriminant(l); - switch (move var@2) { - 0: isize => { - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return - } - _ => { - panic - } - } + ppx := &mut px; + var@6 := &mut *(py); + *(ppx) := move var@6; + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -61991,24 +121177,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@8 := true + ppx := &mut px ] **Context**: @@ -62017,41 +121211,51 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@2 := discriminant(l); - switch (move var@2) { - 0: isize => { - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return - } - _ => { - panic - } - } + var@6 := &mut *(py); + *(ppx) := move var@6; + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -62060,24 +121264,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@2 := discriminant(l) + var@6 := &mut *(py) ] **Context**: @@ -62086,40 +121298,50 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> s@0 : test1::List ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (1: i32) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - switch (move var@2) { - 0: isize => { - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return - } - _ => { - panic - } - } + *(ppx) := move var@6; + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -62128,33 +121350,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> 0: isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> &mut@3 (1: i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return + *(ppx) := move var@6 ] **Context**: @@ -62163,116 +121384,176 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> &mut@3 (1: i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@8 := false -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> &mut@3 (1: i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@6 -[Debug] -**About to evaluate statement**: [ - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return -] - -**Context**: +[Debug] end borrow: 0: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (⊥ : &'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> &mut@3 (1: i32) ; + None -> &mut@0 (0: i32) ; } +[Debug] give_back: +- bid: 0 +- content: &mut@0 (0: i32) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (⊥ : &'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> &mut@3 (1: i32) ; + None -> ⊥ : &'_ mut (i32) ; +} -[Debug] -**About to evaluate statement**: [ - hd := move (l as test1::List::Cons).0 -] -**Context**: +[Debug] give_back_value: +- bid: 0 +- value: 0: i32 +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (⊥ : &'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + None -> &mut@3 (1: i32) ; + None -> ⊥ : &'_ mut (i32) ; } - [Debug] **About to evaluate statement**: [ - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); + *(*(ppx)) := 2: i32; + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -62282,24 +121563,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (1: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@7 := false + *(*(ppx)) := 2: i32 ] **Context**: @@ -62308,56 +121597,80 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (1: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (1: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - tl := move (l as test1::List::Cons).1 + var@9 := copy *(px); + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -62366,29 +121679,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return + var@9 := copy *(px) ] **Context**: @@ -62397,80 +121713,169 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> s@2 : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@5 := move hd -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> s@1 : T ; - tl -> s@2 : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +copy *(px) -[Debug] -**About to evaluate statement**: [ - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return -] +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> &mut@2 (&mut@3 (2: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 2 +- content: &mut@2 (&mut@3 (2: i32)) +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> s@2 : std::boxed::Box> ; - var@5 -> s@1 : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] give_back_value: +- bid: 2 +- value: &mut@3 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⌊mut@2⌋ ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + [Debug] **About to evaluate statement**: [ - var@6 := move deref_box(tl) + var@8 := move var@9 == 2: i32; + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -62479,95 +121884,144 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> s@2 : std::boxed::Box> ; - var@5 -> s@1 : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 2: i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] expand_symbolic_value: s@2 : std::boxed::Box> +[Debug] +**About to evaluate statement**: [ + var@8 := move var@9 == 2: i32 +] -- original context: +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> s@2 : std::boxed::Box> ; - var@5 -> s@1 : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 2: i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -- new context: + +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(s@3 : test1::List) ; - var@5 -> s@1 : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> 2: i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return -] +- op: +move var@9 -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> s@1 : T ; - var@6 -> s@3 : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - (var@0).0 := move var@5 + var@7 := ¬ move var@8; + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -62576,32 +122030,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> s@1 : T ; - var@6 -> s@3 : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@0 : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] expand_bottom_value_from_projection: -pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) -ty: (Types.Adt (Types.Tuple, [], - [(Types.TypeVar 0); (Types.Adt ((Types.AdtId 1), [], [(Types.TypeVar 0)])) - ] - )) [Debug] **About to evaluate statement**: [ - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return + var@7 := ¬ move var@8 ] **Context**: @@ -62610,50 +122064,76 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> (s@1 : T, ⊥ : test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : T ; - var@6 -> s@3 : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@0 : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - (var@0).1 := move var@6 -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (s@1 : T, ⊥ : test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : T ; - var@6 -> s@3 : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@0 : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@8 [Debug] **About to evaluate statement**: [ - var@9 := move alloc::alloc::box_free>(move tl); + assert(¬move var@7); + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -62663,24 +122143,32 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> (s@1 : T, s@3 : test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> s@1 : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@9 := move alloc::alloc::box_free>(move tl) + assert(¬move var@7) ] **Context**: @@ -62689,72 +122177,76 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> (s@1 : T, s@3 : test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> @Box(⊥ : test1::List) ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> s@1 : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] eval_non_local_function_call: -- fid:CfimAst.BoxFree -- type_params: [test1::List] -- args: [move tl] -- dest: var@9 -[Debug] drop_value: place: tl -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (s@1 : T, s@3 : test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> false ; - var@8 -> false ; - var@9 -> () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> true ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@7 [Debug] **About to evaluate statement**: [ - switch (move var@2) { - 0: isize => { - var@8 := false; - hd := move (l as test1::List::Cons).0; - var@7 := false; - tl := move (l as test1::List::Cons).1; - var@5 := move hd; - var@6 := move deref_box(tl); - (var@0).0 := move var@5; - (var@0).1 := move var@6; - var@9 := move alloc::alloc::box_free>(move tl); - return - } - _ => { - panic - } - } + var@12 := copy x; + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -62763,24 +122255,32 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Nil ; - var@2 -> 1: isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - panic + var@12 := copy x ] **Context**: @@ -62789,65 +122289,75 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Nil ; - var@2 -> ⊥ : isize ; - hd -> ⊥ : T ; - tl -> ⊥ : std::boxed::Box> ; - var@5 -> ⊥ : T ; - var@6 -> ⊥ : test1::List ; - var@7 -> true ; - var@8 -> true ; - var@9 -> ⊥ : () ; - var@10 -> ⊥ : isize ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] test_function_symbolic: test_split_list -[Debug] -**About to evaluate statement**: [ - set_discriminant(var@3, 1); - var@2 := move alloc::boxed::Box>::new(move var@3); - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := move l; - var@6 := move split_list(move var@7); - hd := copy (var@6).0; - 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**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - set_discriminant(var@3, 1) + var@11 := move var@12 == 0: i32; + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -62856,37 +122366,32 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 0: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@2 := move alloc::boxed::Box>::new(move var@3); - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := move l; - var@6 := move split_list(move var@7); - hd := copy (var@6).0; - 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 + var@11 := move var@12 == 0: i32 ] **Context**: @@ -62895,66 +122400,105 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 0: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@2 := move alloc::boxed::Box>::new(move var@3) -] +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> 0: i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@12 + +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> test1::List::Nil ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +0: i32 -[Debug] eval_non_local_function_call: -- fid:CfimAst.BoxNew -- type_params: [test1::List] -- args: [move var@3] -- dest: var@2 [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).0 := 0: i32; - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := move l; - var@6 := move split_list(move var@7); - hd := copy (var@6).0; - 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); + var@10 := ¬ move var@11; + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -62964,24 +122508,32 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@2 : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).0 := 0: i32 + var@10 := ¬ move var@11 ] **Context**: @@ -62990,64 +122542,73 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@2 : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] expand_bottom_value_from_projection: -pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) -ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) -[Debug] -**About to evaluate statement**: [ - (l as test1::List::Cons).1 := move var@2; - set_discriminant(l, 0); - var@7 := move l; - var@6 := move split_list(move var@7); - hd := copy (var@6).0; - 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**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@2 : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@11 [Debug] **About to evaluate statement**: [ - (l as test1::List::Cons).1 := move var@2 + assert(¬move var@10); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -63056,34 +122617,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> s@0 : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> s@3 : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - set_discriminant(l, 0); - var@7 := move l; - var@6 := move split_list(move var@7); - hd := copy (var@6).0; - 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 + assert(¬move var@10) ] **Context**: @@ -63092,58 +122651,71 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> s@3 : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - set_discriminant(l, 0) -] - -**Context**: +[Debug] 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>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@10 [Debug] **About to evaluate statement**: [ - var@7 := move l; - var@6 := move split_list(move var@7); - hd := copy (var@6).0; - 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); + var@15 := copy *(py); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -63153,24 +122725,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@7 := move l + var@15 := copy *(py) ] **Context**: @@ -63179,90 +122759,160 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@6 := move split_list(move var@7); - hd := copy (var@6).0; - 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**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +copy *(py) -[Debug] -**About to evaluate statement**: [ - var@6 := move split_list(move var@7) -] +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> &mut@3 (2: i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 3 +- content: &mut@3 (2: i32) +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +[Debug] give_back_value: +- bid: 3 +- value: 2: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (⌊mut@3⌋) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + [Debug] **About to evaluate statement**: [ - hd := copy (var@6).0; - 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); + var@14 := move var@15 == 2: i32; + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -63272,24 +122922,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> s@1 : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 2: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - hd := copy (var@6).0 + var@14 := move var@15 == 2: i32 ] **Context**: @@ -63298,71 +122956,101 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> s@1 : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 2: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] expand_symbolic_value: s@1 : (i32, test1::List) - -- original context: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> s@1 : (i32, test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> 2: i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -- new context: +- op: +move var@15 + +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> ⊥ : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (s@2 : i32, s@3 : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +2: i32 + [Debug] **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); + var@13 := ¬ move var@14; + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -63372,24 +123060,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (s@2 : i32, s@3 : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@4 : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - tl := move (var@6).1 + var@13 := ¬ move var@14 ] **Context**: @@ -63398,55 +123094,69 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (s@2 : i32, s@3 : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@4 : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@10 := copy hd; - var@9 := move var@10 == 0: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - drop(tl); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@4 : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@14 [Debug] **About to evaluate statement**: [ - var@10 := copy hd + assert(¬move var@13); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -63455,28 +123165,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> s@5 : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@9 := move var@10 == 0: i32; - var@8 := ¬ move var@9; - assert(¬move var@8); - drop(tl); - return + assert(¬move var@13) ] **Context**: @@ -63485,52 +123199,67 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> s@2 : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> s@5 : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@9 := move var@10 == 0: i32 -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> s@2 : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> true ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@13 [Debug] **About to evaluate statement**: [ - var@8 := ¬ move var@9; - assert(¬move var@8); - drop(tl); + var@18 := copy y; + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -63540,24 +123269,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> s@4 : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@8 := ¬ move var@9 + var@18 := copy y ] **Context**: @@ -63566,131 +123303,156 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> s@4 : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@8); - drop(tl); - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> s@5 : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +copy y -[Debug] -**About to evaluate statement**: [ - assert(¬move var@8) -] - -**Context**: +[Debug] end borrow: 1: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> s@5 : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> &mut@1 (2: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } - - -[Debug] -**About to evaluate statement**: [ - drop(tl); - return -] - -**Context**: +[Debug] give_back: +- bid: 1 +- content: &mut@1 (2: i32) +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } - -[Debug] -**About to evaluate statement**: [ - drop(tl) -] - -**Context**: +[Debug] give_back_value: +- bid: 1 +- value: 2: i32 +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> s@3 : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⌊mut@1⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } - -[Debug] drop_value: place: tl [Debug] **About to evaluate statement**: [ + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); return ] @@ -63700,32 +123462,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - l -> ⊥ : test1::List ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - hd -> s@2 : i32 ; - tl -> ⊥ : test1::List ; - var@6 -> (s@2 : i32, ⊥ : test1::List) ; - var@7 -> ⊥ : test1::List ; - var@8 -> ⊥ : bool ; - var@9 -> ⊥ : bool ; - var@10 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 2: i32 ; } -[Debug] test_function_symbolic: get_elem [Debug] **About to evaluate statement**: [ - var@4 := copy b; - if (move var@4) { - var@0 := &mut *(x) - } - else { - var@0 := move y - }; - return + var@17 := move var@18 == 2: i32 ] **Context**: @@ -63734,84 +123496,98 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 2: i32 ; } -[Debug] -**About to evaluate statement**: [ - var@4 := copy b -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> 2: i32 ; } +- op: +move var@18 -[Debug] -**About to evaluate statement**: [ - if (move var@4) { - var@0 := &mut *(x) - } - else { - var@0 := move y - }; - return -] - -**Context**: +[Debug] 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 -> s@0 : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - if (move var@4) { - var@0 := &mut *(x) - } - else { - var@0 := move y - } + var@16 := ¬ move var@17; + assert(¬move var@16); + return ] **Context**: @@ -63820,23 +123596,32 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@0 : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@6 : bool ; + Some (var@18) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@0 := &mut *(x) + var@16 := ¬ move var@17 ] **Context**: @@ -63845,63 +123630,99 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - abs@0{parents={}}{regions={0}} { - true, - proj_loans (s@1 : &r@0 mut (T)), - proj_loans (s@2 : &r@0 mut (T)) - } - var@0 -> ⊥ : &'_ mut (T) ; - b -> true ; - x -> s@1 : &r@0 mut (T) ; - y -> s@2 : &r@0 mut (T) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@6 : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] expand_symbolic_value: s@1 : &r@0 mut (T) - -- original context: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - abs@0{parents={}}{regions={0}} { - true, - proj_loans (s@1 : &r@0 mut (T)), - proj_loans (s@2 : &r@0 mut (T)) - } - var@0 -> ⊥ : &'_ mut (T) ; - b -> true ; - x -> s@1 : &r@0 mut (T) ; - y -> s@2 : &r@0 mut (T) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@6 : bool ; + Some (var@18) -> ⊥ : i32 ; } -- new context: +- op: +move var@17 + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@16); + return +] + +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - abs@0{parents={}}{regions={0}} { - true, - ⌊mut@0, proj_loans (s@3 : T)⌋, - proj_loans (s@2 : &r@0 mut (T)) - } - var@0 -> ⊥ : &'_ mut (T) ; - b -> true ; - x -> &mut@0 (s@3 : T) ; - y -> s@2 : &r@0 mut (T) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> s@7 : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } + [Debug] **About to evaluate statement**: [ - var@0 := move y + assert(¬move var@16) ] **Context**: @@ -63910,44 +123731,60 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> s@7 : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - abs@0{parents={}}{regions={0}} { - true, - ⌊mut@0, proj_loans (s@3 : T)⌋, - proj_loans (s@2 : &r@0 mut (T)) - } - var@0 -> &mut@1 (s@3 : T) ; - b -> true ; - x -> &mut@0 (⌊mut@1⌋) ; - y -> s@2 : &r@0 mut (T) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> true ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } +- op: +move var@16 [Debug] **About to evaluate statement**: [ @@ -63960,44 +123797,38 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@2 : &r@0 mut (T) ; - b -> false ; - x -> s@1 : &r@0 mut (T) ; - y -> ⊥ : &'_ mut (T) ; - var@4 -> ⊥ : bool ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 2: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : i32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; } -[Debug] test_function_symbolic: get_elem_test +[Debug] test_function_symbolic: test_list1 [Debug] **About to evaluate statement**: [ - x := 0: i32; - y := 0: i32; - var@5 := &mut x; - var@4 := &two-phase *(var@5); - var@7 := &mut y; - var@6 := &two-phase *(var@7); - z := move get_elem(true, move var@4, move var@6); - var@8 := copy *(z); - *(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); + set_discriminant(var@3, 1); + var@2 := move alloc::boxed::Box>::new(move var@3); + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + drop(l); return ] @@ -64007,32 +123838,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } [Debug] **About to evaluate statement**: [ - x := 0: i32 + set_discriminant(var@3, 1) ] **Context**: @@ -64041,51 +123857,21 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } [Debug] **About to evaluate statement**: [ - y := 0: i32; - var@5 := &mut x; - var@4 := &two-phase *(var@5); - var@7 := &mut y; - var@6 := &two-phase *(var@7); - z := move get_elem(true, move var@4, move var@6); - var@8 := copy *(z); - *(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); + var@2 := move alloc::boxed::Box>::new(move var@3); + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + drop(l); return ] @@ -64095,32 +123881,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; } [Debug] **About to evaluate statement**: [ - y := 0: i32 + var@2 := move alloc::boxed::Box>::new(move var@3) ] **Context**: @@ -64129,85 +123900,43 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; } -[Debug] -**About to evaluate statement**: [ - var@5 := &mut x; - var@4 := &two-phase *(var@5); - var@7 := &mut y; - var@6 := &two-phase *(var@7); - z := move get_elem(true, move var@4, move var@6); - var@8 := copy *(z); - *(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**: +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [test1::List] +- args: [move var@3] +- dest: var@2 +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ - var@5 := &mut x + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + drop(l); + return ] **Context**: @@ -64216,50 +123945,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } [Debug] **About to evaluate statement**: [ - var@4 := &two-phase *(var@5); - var@7 := &mut y; - var@6 := &two-phase *(var@7); - z := move get_elem(true, move var@4, move var@6); - var@8 := copy *(z); - *(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 + (l as test1::List::Cons).0 := 0: i32 ] **Context**: @@ -64268,82 +123964,39 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } -[Debug] -**About to evaluate statement**: [ - var@4 := &two-phase *(var@5) -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } +- op: +0: i32 +[Debug] expand_bottom_value_from_projection: +pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) +ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] **About to evaluate statement**: [ - var@7 := &mut y; - var@6 := &two-phase *(var@7); - z := move get_elem(true, move var@4, move var@6); - var@8 := copy *(z); - *(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); + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + drop(l); return ] @@ -64353,32 +124006,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } [Debug] **About to evaluate statement**: [ - var@7 := &mut y + (l as test1::List::Cons).1 := move var@2 ] **Context**: @@ -64387,47 +124025,35 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } +- op: +move var@2 [Debug] **About to evaluate statement**: [ - var@6 := &two-phase *(var@7); - z := move get_elem(true, move var@4, move var@6); - var@8 := copy *(z); - *(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); + set_discriminant(l, 0); + drop(l); return ] @@ -64437,32 +124063,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> ⊥ : &'_ 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } [Debug] **About to evaluate statement**: [ - var@6 := &two-phase *(var@7) + set_discriminant(l, 0) ] **Context**: @@ -64471,46 +124082,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> ⊥ : &'_ 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } [Debug] **About to evaluate statement**: [ - z := move get_elem(true, move var@4, move var@6); - var@8 := copy *(z); - *(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); + drop(l); return ] @@ -64520,32 +124102,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } [Debug] **About to evaluate statement**: [ - z := move get_elem(true, move var@4, move var@6) + drop(l) ] **Context**: @@ -64554,53 +124121,17 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } -[Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); - ty = (Types.Integer Types.I32) } -[Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); - ty = (Types.Integer Types.I32) } +[Debug] drop_value: place: l [Debug] **About to evaluate statement**: [ - var@8 := copy *(z); - *(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 ] @@ -64610,38 +124141,29 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> s@0 : &r@0 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 ; - abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - proj_loans (s@0 : &r@0 mut (i32)) - } + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; } +[Debug] test_function_symbolic: test_box1 [Debug] **About to evaluate statement**: [ - var@8 := copy *(z) + b := move alloc::boxed::Box::new(0: i32); + var@3 := &two-phase b; + x := move core::ops::deref::DerefMut::deref_mut(move var@3); + *(x) := 1: i32; + var@5 := &b; + x := move core::ops::deref::Deref>::deref(move var@5); + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return ] **Context**: @@ -64650,120 +124172,82 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> s@0 : &r@0 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 ; - abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - proj_loans (s@0 : &r@0 mut (i32)) - } + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] expand_symbolic_value: s@0 : &r@0 mut (i32) +[Debug] +**About to evaluate statement**: [ + b := move alloc::boxed::Box::new(0: i32) +] -- original context: +**Context**: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> s@0 : &r@0 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 ; - abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - proj_loans (s@0 : &r@0 mut (i32)) - } + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } -- new context: + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [i32] +- args: [0: i32] +- dest: b +[Debug] 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 -> ⊥ : 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)⌋ - } + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } +- op: +0: i32 + [Debug] **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); + var@3 := &two-phase b; + x := move core::ops::deref::DerefMut::deref_mut(move var@3); + *(x) := 1: i32; + var@5 := &b; + x := move core::ops::deref::Deref>::deref(move var@5); + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); return ] @@ -64773,38 +124257,22 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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)⌋ - } + Some (var@0) -> ⊥ : () ; + Some (b) -> s@0 : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - *(z) := copy var@8 + 1: i32 + var@3 := &two-phase b ] **Context**: @@ -64813,49 +124281,30 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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)⌋ - } + Some (var@0) -> ⊥ : () ; + Some (b) -> s@0 : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - 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); + x := move core::ops::deref::DerefMut::deref_mut(move var@3); + *(x) := 1: i32; + var@5 := &b; + x := move core::ops::deref::Deref>::deref(move var@5); + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); return ] @@ -64865,38 +124314,22 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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)⌋ - } + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({0}, s@0 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⌊inactivated_mut@0⌋ ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@12 := copy *(z) + x := move core::ops::deref::DerefMut::deref_mut(move var@3) ] **Context**: @@ -64905,48 +124338,58 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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)⌋ - } + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({0}, s@0 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⌊inactivated_mut@0⌋ ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxDerefMut +- type_params: [i32] +- args: [move var@3] +- dest: x +[Debug] activate_inactivated_mut_borrow: resulting value: +s@0 : std::boxed::Box +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> &mut@0 (s@0 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } +- op: +move var@3 [Debug] **About to evaluate statement**: [ - 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); + *(x) := 1: i32; + var@5 := &b; + x := move core::ops::deref::Deref>::deref(move var@5); + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); return ] @@ -64956,30 +124399,18 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@2 : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> s@1 : &r@0 mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + proj_loans (s@1 : &r@0 mut (i32)) } } @@ -64987,7 +124418,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] **About to evaluate statement**: [ - var@11 := move var@12 == 1: i32 + *(x) := 1: i32 ] **Context**: @@ -64996,136 +124427,106 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@2 : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> s@1 : &r@0 mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + proj_loans (s@1 : &r@0 mut (i32)) } } -[Debug] -**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**: +[Debug] 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@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> s@1 : &r@0 mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + proj_loans (s@1 : &r@0 mut (i32)) } } +- op: +1: i32 -[Debug] -**About to evaluate statement**: [ - var@10 := ¬ move var@11 -] +[Debug] expand_symbolic_value: s@1 : &r@0 mut (i32) -**Context**: +- original context: # 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@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> s@1 : &r@0 mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + proj_loans (s@1 : &r@0 mut (i32)) } + None -> 1: i32 ; } +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (s@2 : i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ + } + None -> 1: i32 ; +} + [Debug] **About to evaluate statement**: [ - 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); + var@5 := &b; + x := move core::ops::deref::Deref>::deref(move var@5); + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); return ] @@ -65135,30 +124536,18 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@4 : 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ } } @@ -65166,7 +124555,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] **About to evaluate statement**: [ - assert(¬move var@10) + var@5 := &b ] **Context**: @@ -65175,191 +124564,162 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@4 : 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ } } -[Debug] -**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**: +[Debug] end borrow: 0: +- original context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ } } +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ + } +} -[Debug] -**About to evaluate statement**: [ - var@15 := copy x -] - -**Context**: +[Debug] end_abstraction: 0 +- context after parent abstractions ended: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ } } +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ + } +} -[Debug] end_abstraction: 0 -- original context: +[Debug] give_back: +- bid: 1 +- content: &mut@1 (1: i32) +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@1⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (s@2 : i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ } } -[Debug] end_abstraction: 0 -- context after parent abstractions ended: + +[Debug] give_back_value: +- bid: 1 +- value: 1: i32 +- context: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@1⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (s@2 : i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ } } + [Debug] end_abstraction: 0 - context after loans ended: # Ended regions: {} @@ -65367,33 +124727,46 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@1⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - @ended_mut_loan{ given_back=proj_borrows (s@2 : i32 <: i32); child=proj_loans (s@1 : i32) } + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) } + } +} + +[Debug] give_back_value: +- bid: 0 +- value: s@3 : std::boxed::Box +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + ⊥ : &r@0 mut (std::boxed::Box), + @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) } } } + [Debug] end_abstraction: 0 - original context: # Ended regions: {} @@ -65401,30 +124774,18 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@1⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (s@2 : i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - 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 -> ⊥ : 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⌊mut@0⌋ ; + Some (x) -> &mut@1 (1: i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - true, - &mut@1 (0: i32), - &mut@3 (0: i32), - ⌊mut@4, proj_loans (s@1 : i32)⌋ + &mut@0 (proj_borrows (s@0 : std::boxed::Box <: std::boxed::Box)), + ⌊mut@1, proj_loans (s@2 : i32)⌋ } } @@ -65435,36 +124796,25 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> s@3 : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **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); + x := move core::ops::deref::Deref>::deref(move var@5); + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); return ] @@ -65474,32 +124824,22 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⌊shared@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@14 := move var@15 == 1: i32 + x := move core::ops::deref::Deref>::deref(move var@5) ] **Context**: @@ -65508,72 +124848,54 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⌊shared@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - 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**: +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxDeref +- type_params: [i32] +- args: [move var@5] +- dest: x +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⌊shared@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ - var@13 := ¬ move var@14 + var@8 := copy *(x); + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return ] **Context**: @@ -65582,37 +124904,26 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> s@4 : &r@1 (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + proj_loans (s@4 : &r@1 (i32)) + } } [Debug] **About to evaluate statement**: [ - 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 + var@8 := copy *(x) ] **Context**: @@ -65621,104 +124932,102 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@8 : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> s@4 : &r@1 (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + proj_loans (s@4 : &r@1 (i32)) + } } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@13) -] - -**Context**: +[Debug] 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 -> s@8 : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> s@4 : &r@1 (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + proj_loans (s@4 : &r@1 (i32)) + } } +- op: +copy *(x) -[Debug] -**About to evaluate statement**: [ - var@18 := copy y; - var@17 := move var@18 == 0: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return -] +[Debug] expand_symbolic_value: s@4 : &r@1 (i32) -**Context**: +- original context: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> s@4 : &r@1 (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + proj_loans (s@4 : &r@1 (i32)) + } } +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } +} + [Debug] **About to evaluate statement**: [ - var@18 := copy y + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return ] **Context**: @@ -65727,35 +125036,26 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@5 : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } [Debug] **About to evaluate statement**: [ - var@17 := move var@18 == 0: i32; - var@16 := ¬ move var@17; - assert(¬move var@16); - return + var@7 := move var@8 == 1: i32 ] **Context**: @@ -65764,67 +125064,80 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@5 : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } -[Debug] -**About to evaluate statement**: [ - var@17 := move var@18 == 0: i32 -] +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@5 : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } +} + + +- op: +move var@8 + +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } +- op: +1: i32 [Debug] **About to evaluate statement**: [ - var@16 := ¬ move var@17; - assert(¬move var@16); + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); return ] @@ -65834,32 +125147,26 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@6 : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } [Debug] **About to evaluate statement**: [ - var@16 := ¬ move var@17 + var@6 := ¬ move var@7 ] **Context**: @@ -65868,32 +125175,53 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@6 : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@6 : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } +- op: +move var@7 [Debug] **About to evaluate statement**: [ - assert(¬move var@16); + assert(¬move var@6); + drop(b); return ] @@ -65903,32 +125231,26 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@10 : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> s@7 : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } [Debug] **About to evaluate statement**: [ - assert(¬move var@16) + assert(¬move var@6) ] **Context**: @@ -65937,200 +125259,290 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 -> s@10 : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> s@7 : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] 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 ; + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> true ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } } +- op: +move var@6 -[Debug] test_function_symbolic: id_mut_mut [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); + drop(b); return ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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))) + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } - var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> s@0 : &r@0 mut (&r@1 mut (T)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; } [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x) + drop(b) ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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))) + Some (var@0) -> ⊥ : () ; + Some (b) -> @shared_loan({2}, s@3 : std::boxed::Box) ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } - var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> s@0 : &r@0 mut (&r@1 mut (T)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; } -[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (T)) - +[Debug] drop_value: place: b +[Debug] end borrow: 2: - original context: -# Ended regions: {} +# Ended regions: {0} # 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))) + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } - var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> s@0 : &r@0 mut (&r@1 mut (T)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; + None -> @shared_loan({2}, s@3 : std::boxed::Box) ; } - -- new context: -# Ended regions: {} +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1) +[Debug] end_abstraction: 1 +- original context: +# Ended regions: {0} # 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))) + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } - var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> &mut@0 (s@1 : &r@1 mut (T)) ; - var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; + None -> @shared_loan({2}, s@3 : std::boxed::Box) ; } +[Debug] end_abstraction: 1 +- context after parent abstractions ended: +# Ended regions: {0} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - var@0 := &mut *(var@2); - return -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } + None -> @shared_loan({2}, s@3 : std::boxed::Box) ; +} -**Context**: -# Ended regions: {} +[Debug] end borrow: 3: +- original context: +# Ended regions: {0} # 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))) + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } - var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : &r@1 mut (T)) ; + None -> @shared_loan({2}, s@3 : std::boxed::Box) ; } +[Debug] give_back: +- bid: 3 +- content: ⌊shared@3⌋ +- context: +# Ended regions: {0} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) + } + None -> @shared_loan({2}, s@3 : std::boxed::Box) ; +} -[Debug] -**About to evaluate statement**: [ - var@0 := &mut *(var@2) -] -**Context**: -# Ended regions: {} +[Debug] end_abstraction: 1 +- context after loans ended: +# Ended regions: {0} # 1 frame(s) # Frame 0: { - abs@0{parents={}}{regions={0}} { - ⌊mut@0, proj_loans (s@1 : &r@1 mut (T))⌋ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @ended_shared_loan(s@5 : i32, proj_loans (s@5 : i32)) } - abs@1{parents={0}}{regions={1}} { - @ignored_mut_loan(0, proj_loans (s@1 : &r@1 mut (T))) + None -> @shared_loan({2}, s@3 : std::boxed::Box) ; +} + +[Debug] end_abstraction: 1 +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⌊shared@3⌋ ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } - var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : &r@1 mut (T)) ; + None -> @shared_loan({2}, s@3 : std::boxed::Box) ; } +- new context: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + None -> s@3 : std::boxed::Box ; +} [Debug] **About to evaluate statement**: [ @@ -66138,29 +125550,28 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: -# Ended regions: {} +# Ended regions: {0, 1} # 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@2 (s@1 : &r@1 mut (T)) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (⌊mut@2⌋) ; + Some (var@0) -> ⊥ : () ; + Some (b) -> ⊥ : std::boxed::Box ; + Some (x) -> ⊥ : &'_ mut (i32) ; + Some (var@3) -> ⊥ : &'_ mut (std::boxed::Box) ; + Some (x) -> ⊥ : &'_ (i32) ; + Some (var@5) -> ⊥ : &'_ (std::boxed::Box) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] test_function_symbolic: id_mut_pair +[Debug] test_function_symbolic: copy_int [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); + var@0 := copy x; return ] @@ -66170,19 +125581,15 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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)) ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; } [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x) + var@0 := copy x ] **Context**: @@ -66191,51 +125598,56 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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)) ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; } -[Debug] expand_symbolic_value: s@0 : &r@0 mut ((&r@0 mut (T), u32)) - -- original context: +[Debug] eval_operand: +- ctx: # 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)) ; + Some (var@0) -> ⊥ : i32 ; + Some (x) -> s@0 : i32 ; } -- new context: +- op: +copy x + +[Debug] +**About to evaluate statement**: [ + return +] + +**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)) ; + Some (var@0) -> s@0 : i32 ; + Some (x) -> s@0 : i32 ; } + +[Debug] test_function_symbolic: test_copy_int [Debug] **About to evaluate statement**: [ - var@0 := &mut *(var@2); + x := 0: i32; + px := &x; + var@4 := copy x; + y := move copy_int(move var@4); + var@7 := copy *(px); + var@8 := copy y; + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); return ] @@ -66245,19 +125657,22 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : (&r@0 mut (T), u32)) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@0 := &mut *(var@2) + x := 0: i32 ] **Context**: @@ -66266,53 +125681,51 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : (&r@0 mut (T), u32)) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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@2 (s@1 : (&r@0 mut (T), u32)) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (⌊mut@2⌋) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +0: i32 -[Debug] test_function_symbolic: id_mut_pair_test1 [Debug] **About to evaluate statement**: [ - x := 0: u32; - px := &mut x; - var@4 := move px; - (p).0 := move var@4; - (p).1 := 1: u32; - pp0 := &mut p; - var@7 := &two-phase *(pp0); - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; + px := &x; + var@4 := copy x; + y := move copy_int(move var@4); + var@7 := copy *(px); + var@8 := copy y; + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); return ] @@ -66322,24 +125735,22 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - x := 0: u32 + px := &x ] **Context**: @@ -66348,35 +125759,28 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ (i32) ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - px := &mut x; - var@4 := move px; - (p).0 := move var@4; - (p).1 := 1: u32; - pp0 := &mut p; - var@7 := &two-phase *(pp0); - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; + var@4 := copy x; + y := move copy_int(move var@4); + var@7 := copy *(px); + var@8 := copy y; + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); return ] @@ -66386,24 +125790,22 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - px := &mut x + var@4 := copy x ] **Context**: @@ -66412,61 +125814,50 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # Frame 0: { - var@0 -> ⊥ : () ; - x -> 0: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@4 := move px; - (p).0 := move var@4; - (p).1 := 1: u32; - pp0 := &mut p; - var@7 := &two-phase *(pp0); - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; - return -] - -**Context**: +[Debug] 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +copy x [Debug] **About to evaluate statement**: [ - var@4 := move px + y := move copy_int(move var@4); + var@7 := copy *(px); + var@8 := copy y; + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); + return ] **Context**: @@ -66475,34 +125866,22 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> 0: i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - (p).0 := move var@4; - (p).1 := 1: u32; - pp0 := &mut p; - var@7 := &two-phase *(pp0); - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; - return + y := move copy_int(move var@4) ] **Context**: @@ -66511,64 +125890,48 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> 0: i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - (p).0 := move var@4 -] - -**Context**: +[Debug] 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> ⊥ : i32 ; + Some (var@4) -> 0: i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +move var@4 -[Debug] expand_bottom_value_from_projection: -pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) -ty: (Types.Adt (Types.Tuple, [], - [(Types.Ref (Types.Erased, (Types.Integer Types.U32), Types.Mut)); - (Types.Integer Types.U32)] - )) [Debug] **About to evaluate statement**: [ - (p).1 := 1: u32; - pp0 := &mut p; - var@7 := &two-phase *(pp0); - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; + var@7 := copy *(px); + var@8 := copy y; + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); return ] @@ -66578,24 +125941,22 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - (p).1 := 1: u32 + var@7 := copy *(px) ] **Context**: @@ -66604,58 +125965,48 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - pp0 := &mut p; - var@7 := &two-phase *(pp0); - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> (&mut@0 (0: u32), 1: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +copy *(px) [Debug] **About to evaluate statement**: [ - pp0 := &mut p + var@8 := copy y; + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); + return ] **Context**: @@ -66664,31 +126015,22 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> (&mut@0 (0: u32), 1: 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@7 := &two-phase *(pp0); - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; - return + var@8 := copy y ] **Context**: @@ -66697,55 +126039,46 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 ((&mut@0 (0: u32), 1: u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@7 := &two-phase *(pp0) -] - -**Context**: +[Debug] 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@0 (0: u32), 1: u32)) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +copy y [Debug] **About to evaluate statement**: [ - pp1 := move id_mut_pair(move var@7); - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); return ] @@ -66755,24 +126088,22 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> s@0 : i32 ; } [Debug] **About to evaluate statement**: [ - pp1 := move id_mut_pair(move var@7) + var@6 := move var@7 == move var@8 ] **Context**: @@ -66781,86 +126112,68 @@ ty: (Types.Adt (Types.Tuple, [], # 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) ; + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> s@0 : i32 ; } -[Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Adt - { Values.variant_id = ; - field_values = - [{ Values.value = - (Values.Borrow - (Values.MutBorrow (, - { Values.value = - (Values.Concrete - (Values.Scalar { Values.value = 0; int_ty = Types.U32 })); - ty = (Types.Integer Types.U32) } - ))); - ty = - (Types.Ref (Types.Erased, (Types.Integer Types.U32), Types.Mut)) }; - { Values.value = - (Values.Concrete - (Values.Scalar { Values.value = 1; int_ty = Types.U32 })); - ty = (Types.Integer Types.U32) } - ] - }); - ty = - (Types.Adt (Types.Tuple, [], - [(Types.Ref (Types.Erased, (Types.Integer Types.U32), Types.Mut)); - (Types.Integer Types.U32)] - )) - } -[Debug] -**About to evaluate statement**: [ - y := 2: u32; - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; - return -] +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) -**Context**: +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> 0: i32 ; + Some (var@8) -> s@0 : i32 ; +} + + +- op: +move var@7 + +[Debug] 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> s@0 : i32 ; } +- op: +move var@8 [Debug] **About to evaluate statement**: [ - y := 2: u32 + var@5 := ¬ move var@6; + assert(¬move var@5); + return ] **Context**: @@ -66869,32 +126182,22 @@ ty: (Types.Adt (Types.Tuple, [], # 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> s@1 : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@10 := &mut y; - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; - return + var@5 := ¬ move var@6 ] **Context**: @@ -66903,28 +126206,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> 2: 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> s@1 : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> s@1 : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +move var@6 [Debug] **About to evaluate statement**: [ - var@10 := &mut y + assert(¬move var@5); + return ] **Context**: @@ -66933,31 +126253,22 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> 2: 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> s@2 : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@9 := &mut *(var@10); - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; - return + assert(¬move var@5) ] **Context**: @@ -66966,28 +126277,44 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@3⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@3 (2: 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> s@2 : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> true ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +- op: +move var@5 [Debug] **About to evaluate statement**: [ - var@9 := &mut *(var@10) + return ] **Context**: @@ -66996,29 +126323,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@3⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@3 (2: 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> @shared_loan({0}, 0: i32) ; + Some (px) -> ⌊shared@0⌋ ; + Some (y) -> s@0 : i32 ; + Some (var@4) -> ⊥ : i32 ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : i32 ; + Some (var@8) -> ⊥ : i32 ; } +[Debug] test_function_symbolic: is_cons [Debug] **About to evaluate statement**: [ - *((pp1).0) := move var@9; - *((pp1).1) := 3: u32; + var@2 := discriminant(*(l)); + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + }; return ] @@ -67028,28 +126360,19 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@3⌋ ; - var@9 -> &mut@4 (2: u32) ; - var@10 -> &mut@3 (⌊mut@4⌋) ; 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))) + proj_loans (s@0 : &r@0 (test1::List)) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> s@0 : &r@0 (test1::List) ; + Some (var@2) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - *((pp1).0) := move var@9 + var@2 := discriminant(*(l)) ] **Context**: @@ -67058,26 +126381,17 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊mut@3⌋ ; - var@9 -> &mut@4 (2: u32) ; - var@10 -> &mut@3 (⌊mut@4⌋) ; 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))) + proj_loans (s@0 : &r@0 (test1::List)) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> s@0 : &r@0 (test1::List) ; + Some (var@2) -> ⊥ : isize ; } -[Debug] expand_symbolic_value: s@0 : &r@0 mut ((&r@0 mut (u32), u32)) +[Debug] expand_symbolic_value: s@0 : &r@0 (test1::List) - original context: # Ended regions: {} @@ -67085,21 +126399,12 @@ ty: (Types.Adt (Types.Tuple, [], # 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 -> ⌊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)), - proj_loans (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) + proj_loans (s@0 : &r@0 (test1::List)) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> s@0 : &r@0 (test1::List) ; + Some (var@2) -> ⊥ : isize ; } @@ -67109,108 +126414,100 @@ ty: (Types.Adt (Types.Tuple, [], # 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))⌋ + @shared_loan({0}, s@1 : test1::List, proj_loans (s@1 : test1::List)) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> ⊥ : isize ; } -[Debug] expand_symbolic_value: s@1 : (&r@0 mut (u32), u32) +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + }; + return +] -- original context: +**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@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))⌋ + @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> 0: isize ; } -- new context: + +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + } +] + +**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))⌋ + @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> 0: isize ; } -[Debug] -**About to evaluate statement**: [ - *((pp1).1) := 3: u32; - return -] -**Context**: +[Debug] 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 -> &mut@5 ((&mut@4 (2: 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))⌋ + @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> 0: isize ; } +- op: +move var@2 [Debug] **About to evaluate statement**: [ - *((pp1).1) := 3: u32 + var@0 := true ] **Context**: @@ -67219,24 +126516,34 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ((&mut@4 (2: 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))⌋ + @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) + } + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> ⊥ : isize ; +} + + + +[Debug] 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::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) } + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> ⊥ : isize ; } +- op: +true [Debug] **About to evaluate statement**: [ @@ -67249,30 +126556,29 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ((&mut@4 (2: u32), 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))⌋ + @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) } + Some (var@0) -> true ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> ⊥ : isize ; } -[Debug] test_function_symbolic: id_mut_mut_pair [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + }; return ] @@ -67283,18 +126589,28 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { abs@0{parents={}}{regions={0}} { - proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) + @shared_loan({0}, test1::List::Nil, test1::List::Nil) } - 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))) ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> 1: isize ; } [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x) + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + } ] **Context**: @@ -67304,72 +126620,77 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { abs@0{parents={}}{regions={0}} { - proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) + @shared_loan({0}, test1::List::Nil, test1::List::Nil) } - 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))) ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> 1: isize ; } -[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) - -- original context: +[Debug] eval_operand: +- ctx: # 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)))) + @shared_loan({0}, test1::List::Nil, test1::List::Nil) } - 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))) ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> 1: isize ; } -- new context: +- op: +move var@2 + +[Debug] +**About to evaluate statement**: [ + var@0 := false +] + +**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)))⌋ + @shared_loan({0}, test1::List::Nil, test1::List::Nil) } - 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))) ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> ⊥ : isize ; } -[Debug] -**About to evaluate statement**: [ - var@0 := &mut *(var@2); - return -] -**Context**: +[Debug] eval_operand: +- ctx: # 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)))⌋ + @shared_loan({0}, test1::List::Nil, test1::List::Nil) } - var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; + Some (var@0) -> ⊥ : bool ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> ⊥ : isize ; } +- op: +false [Debug] **About to evaluate statement**: [ - var@0 := &mut *(var@2) + return ] **Context**: @@ -67379,17 +126700,29 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { abs@0{parents={}}{regions={0}} { - ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋ + @shared_loan({0}, test1::List::Nil, test1::List::Nil) } - var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; + Some (var@0) -> false ; + Some (l) -> ⌊shared@0⌋ ; + Some (var@2) -> ⊥ : isize ; } +[Debug] test_function_symbolic: test_is_cons [Debug] **About to evaluate statement**: [ + set_discriminant(var@3, 1); + var@2 := move alloc::boxed::Box>::new(move var@3); + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := &l; + var@6 := copy var@7; + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); return ] @@ -67399,22 +126732,21 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - abs@0{parents={}}{regions={0}} { - ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋ - } - var@0 -> &mut@2 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (⌊mut@2⌋) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -[Debug] test_function_symbolic: id_mut_mut_mut_same [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x); - var@0 := &mut *(var@2); - return + set_discriminant(var@3, 1) ] **Context**: @@ -67423,19 +126755,31 @@ ty: (Types.Adt (Types.Tuple, [], # 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))) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } [Debug] **About to evaluate statement**: [ - var@2 := &mut *(x) + var@2 := move alloc::boxed::Box>::new(move var@3); + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := &l; + var@6 := copy var@7; + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return ] **Context**: @@ -67444,51 +126788,78 @@ ty: (Types.Adt (Types.Tuple, [], # 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))) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) +[Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] -- original context: +**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))) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -- new context: + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [test1::List] +- args: [move var@3] +- dest: var@2 +[Debug] eval_operand: +- ctx: # 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))) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } +- op: +move var@3 + [Debug] **About to evaluate statement**: [ - var@0 := &mut *(var@2); + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := &l; + var@6 := copy var@7; + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); return ] @@ -67498,19 +126869,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : &r@0 mut (&r@0 mut (u32))) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } [Debug] **About to evaluate statement**: [ - var@0 := &mut *(var@2) + (l as test1::List::Cons).0 := 0: i32 ] **Context**: @@ -67519,40 +126892,52 @@ ty: (Types.Adt (Types.Tuple, [], # 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 (⌊mut@1⌋) ; - var@2 -> &mut@1 (s@1 : &r@0 mut (&r@0 mut (u32))) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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@2 (s@1 : &r@0 mut (&r@0 mut (u32))) ; - x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (⌊mut@2⌋) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } +- op: +0: i32 -[Debug] test_function_symbolic: id_borrow1 +[Debug] expand_bottom_value_from_projection: +pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) +ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] **About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := &l; + var@6 := copy var@7; + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); return ] @@ -67562,26 +126947,21 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - abs@0{parents={}}{regions={0}} { - proj_loans (s@0 : &r@0 mut (&r@1 (u32))), - proj_loans (s@1 : &r@0 (&r@0 mut (u32))) - } - abs@1{parents={0}}{regions={1}} { - proj_loans (s@0 : &r@0 mut (&r@1 (u32))), - proj_loans (s@1 : &r@0 (&r@0 mut (u32))) - } - var@0 -> ⊥ : () ; - _x -> s@0 : &r@0 mut (&r@1 (u32)) ; - _y -> s@1 : &r@0 (&r@0 mut (u32)) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -[Debug] test_function_symbolic: test_static [Debug] **About to evaluate statement**: [ - var@0 := copy x; - return + (l as test1::List::Cons).1 := move var@2 ] **Context**: @@ -67590,31 +126970,48 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : &'_ (u32) ; - x -> s@0 : &'static (u32) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -[Debug] -**About to evaluate statement**: [ - var@0 := copy x -] - -**Context**: +[Debug] eval_operand: +- ctx: # Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> ⊥ : &'_ (u32) ; - x -> s@0 : &'static (u32) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } +- op: +move var@2 [Debug] **About to evaluate statement**: [ + set_discriminant(l, 0); + var@7 := &l; + var@6 := copy var@7; + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); return ] @@ -67624,17 +127021,21 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> s@0 : &'static (u32) ; - x -> s@0 : &'static (u32) ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -[Debug] test_function_symbolic: test_char [Debug] **About to evaluate statement**: [ - var@0 := a; - return + set_discriminant(l, 0) ] **Context**: @@ -67643,14 +127044,27 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : char ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } [Debug] **About to evaluate statement**: [ - var@0 := a + var@7 := &l; + var@6 := copy var@7; + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return ] **Context**: @@ -67659,14 +127073,21 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> ⊥ : char ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } [Debug] **About to evaluate statement**: [ - return + var@7 := &l ] **Context**: @@ -67675,44 +127096,25 @@ ty: (Types.Adt (Types.Tuple, [], # Frame 0: { - var@0 -> a ; + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } -[Debug] test_function_symbolic: test_loops [Debug] **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); + var@6 := copy var@7; + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); return ] @@ -67722,38 +127124,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; } [Debug] **About to evaluate statement**: [ - x := move test_loop1(2: u32) + var@6 := copy var@7 ] **Context**: @@ -67762,66 +127147,45 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; } +- op: +copy var@7 [Debug] **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); + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); return ] @@ -67831,38 +127195,21 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⌊shared@1⌋ ; + Some (var@7) -> ⌊shared@0⌋ ; } [Debug] **About to evaluate statement**: [ - var@4 := copy x + var@5 := move is_cons(move var@6) ] **Context**: @@ -67871,65 +127218,44 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⌊shared@1⌋ ; + Some (var@7) -> ⌊shared@0⌋ ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⌊shared@1⌋ ; + Some (var@7) -> ⌊shared@0⌋ ; } +- op: +move var@6 [Debug] **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); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); return ] @@ -67939,38 +127265,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> s@1 : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } [Debug] **About to evaluate statement**: [ - var@3 := move var@4 == 2: u32 + var@4 := ¬ move var@5 ] **Context**: @@ -67979,105 +127292,52 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> s@1 : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } -[Debug] -**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**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> s@1 : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } +- op: +move var@5 [Debug] **About to evaluate statement**: [ - var@2 := ¬ move var@3 + assert(¬move var@4); + drop(l); + return ] **Context**: @@ -68086,64 +127346,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> s@2 : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } [Debug] **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 + assert(¬move var@4) ] **Context**: @@ -68152,102 +127373,50 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> s@2 : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@2) -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> true ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } +- op: +move var@4 [Debug] **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); + drop(l); return ] @@ -68257,38 +127426,25 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } [Debug] **About to evaluate statement**: [ - x := move test_loop2(2: u32) + drop(l) ] **Context**: @@ -68297,368 +127453,247 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } } -[Debug] -**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**: +[Debug] drop_value: place: l +[Debug] end borrow: 0: +- original 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } + None -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; } - - -[Debug] -**About to evaluate statement**: [ - var@8 := copy x -] - -**Context**: +[Debug] give_back: +- bid: 0 +- content: ⌊shared@0⌋ +- 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } + None -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; } - -[Debug] -**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**: +[Debug] end borrow: 1: +- original 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } + None -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; } +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } + None -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; +} -[Debug] -**About to evaluate statement**: [ - var@7 := move var@8 == 1: u32 -] - -**Context**: +[Debug] end_abstraction: 0 +- context after parent abstractions ended: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } + None -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; } +[Debug] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } + None -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; +} -[Debug] -**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**: +[Debug] end_abstraction: 0 +- original 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } + None -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; }) ; } +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; + None -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; +} [Debug] **About to evaluate statement**: [ - var@6 := ¬ move var@7 + return ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (var@4) -> ⊥ : bool ; + Some (var@5) -> ⊥ : bool ; + Some (var@6) -> ⊥ : &'_ (test1::List) ; + Some (var@7) -> ⊥ : &'_ (test1::List) ; } +[Debug] test_function_symbolic: split_list [Debug] **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 + var@8 := false; + var@7 := false; + var@7 := true; + var@8 := true; + var@2 := discriminant(l); + switch (move var@2) { + 0: isize => { + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return + } + _ => { + panic + } + } ] **Context**: @@ -68667,38 +127702,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@6) + var@8 := false ] **Context**: @@ -68707,98 +127728,68 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } -[Debug] -**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**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +false [Debug] **About to evaluate statement**: [ - x := move test_loop3(2: u32) + var@7 := false; + var@7 := true; + var@8 := true; + var@2 := discriminant(l); + switch (move var@2) { + 0: isize => { + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return + } + _ => { + panic + } + } ] **Context**: @@ -68807,57 +127798,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **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 + var@7 := false ] **Context**: @@ -68866,96 +127824,67 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } -[Debug] -**About to evaluate statement**: [ - var@12 := copy x -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +false [Debug] **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 + var@7 := true; + var@8 := true; + var@2 := discriminant(l); + switch (move var@2) { + 0: isize => { + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return + } + _ => { + panic + } + } ] **Context**: @@ -68964,38 +127893,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - var@11 := move var@12 == 3: u32 + var@7 := true ] **Context**: @@ -69004,95 +127919,66 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } -[Debug] -**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**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +true [Debug] **About to evaluate statement**: [ - var@10 := ¬ move var@11 + var@8 := true; + var@2 := discriminant(l); + switch (move var@2) { + 0: isize => { + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return + } + _ => { + panic + } + } ] **Context**: @@ -69101,54 +127987,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **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 + var@8 := true ] **Context**: @@ -69157,92 +128013,191 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@10) -] - -**Context**: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +true [Debug] **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); + var@2 := discriminant(l); + switch (move var@2) { + 0: isize => { + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return + } + _ => { + panic + } + } +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := discriminant(l) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> s@0 : test1::List ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return + } + _ => { + panic + } + } +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> 0: isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> 0: isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move var@2 + +[Debug] +**About to evaluate statement**: [ + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); return ] @@ -69252,38 +128207,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - x := move test_loop4(20: u32) + var@8 := false ] **Context**: @@ -69292,51 +128233,55 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +false [Debug] **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); + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); return ] @@ -69346,38 +128291,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - var@16 := copy x + hd := move (l as test1::List::Cons).0 ] **Context**: @@ -69386,50 +128317,54 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +move (l as test1::List::Cons).0 [Debug] **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); + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); return ] @@ -69439,38 +128374,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - var@15 := move var@16 == 1: u32 + var@7 := false ] **Context**: @@ -69479,49 +128400,53 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +false [Debug] **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); + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); return ] @@ -69531,38 +128456,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - var@14 := ¬ move var@15 + tl := move (l as test1::List::Cons).1 ] **Context**: @@ -69571,48 +128482,52 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +move (l as test1::List::Cons).1 [Debug] **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); + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); return ] @@ -69622,38 +128537,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> s@2 : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@14) + var@5 := move hd ] **Context**: @@ -69662,47 +128563,51 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> s@2 : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> s@1 : T ; + Some (tl) -> s@2 : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +move hd [Debug] **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); + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); return ] @@ -69712,38 +128617,119 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> s@2 : std::boxed::Box> ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - x := move test_loop5(2: u32) + var@6 := move deref_box(tl) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> s@2 : std::boxed::Box> ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> s@2 : std::boxed::Box> ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move deref_box(tl) + +[Debug] expand_symbolic_value: s@2 : std::boxed::Box> + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> s@2 : std::boxed::Box> ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(s@3 : test1::List) ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +[Debug] +**About to evaluate statement**: [ + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return ] **Context**: @@ -69752,46 +128738,81 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> s@3 : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **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); + (var@0).0 := move var@5 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> s@3 : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> s@1 : T ; + Some (var@6) -> s@3 : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move var@5 + +[Debug] expand_bottom_value_from_projection: +pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) +ty: (Types.Adt (Types.Tuple, [], + [(Types.TypeVar 0); (Types.Adt ((Types.AdtId 1), [], [(Types.TypeVar 0)])) + ] + )) +[Debug] +**About to evaluate statement**: [ + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); return ] @@ -69801,38 +128822,24 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> (s@1 : T, ⊥ : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> s@3 : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } [Debug] **About to evaluate statement**: [ - var@20 := copy x + (var@0).1 := move var@6 ] **Context**: @@ -69841,2174 +128848,18034 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> (s@1 : T, ⊥ : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> s@3 : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> (s@1 : T, ⊥ : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> s@3 : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; } +- op: +move var@6 [Debug] **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); + var@9 := move alloc::alloc::box_free>(move tl); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> (s@1 : T, s@3 : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := move alloc::alloc::box_free>(move tl) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> (s@1 : T, s@3 : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> @Box(⊥ : test1::List) ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxFree +- type_params: [test1::List] +- args: [move tl] +- dest: var@9 +[Debug] drop_value: place: tl +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> (s@1 : T, s@3 : test1::List) ; + Some (l) -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> false ; + Some (var@8) -> false ; + Some (var@9) -> () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@8 := false; + hd := move (l as test1::List::Cons).0; + var@7 := false; + tl := move (l as test1::List::Cons).1; + var@5 := move hd; + var@6 := move deref_box(tl); + (var@0).0 := move var@5; + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return + } + _ => { + panic + } + } +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Nil ; + Some (var@2) -> 1: isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Nil ; + Some (var@2) -> 1: isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + +- op: +move var@2 + +[Debug] +**About to evaluate statement**: [ + panic +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : (T, test1::List) ; + Some (l) -> test1::List::Nil ; + Some (var@2) -> ⊥ : isize ; + Some (hd) -> ⊥ : T ; + Some (tl) -> ⊥ : std::boxed::Box> ; + Some (var@5) -> ⊥ : T ; + Some (var@6) -> ⊥ : test1::List ; + Some (var@7) -> true ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : () ; + Some (var@10) -> ⊥ : isize ; +} + + + +[Debug] test_function_symbolic: test_split_list +[Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1); + var@2 := move alloc::boxed::Box>::new(move var@3); + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := move l; + var@6 := move split_list(move var@7); + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3); + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := move l; + var@6 := move split_list(move var@7); + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [test1::List] +- args: [move var@3] +- dest: var@2 +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> test1::List::Nil ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move var@3 + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32; + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := move l; + var@6 := move split_list(move var@7); + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] expand_bottom_value_from_projection: +pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0)) +ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + var@7 := move l; + var@6 := move split_list(move var@7); + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + Some (var@2) -> s@0 : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move var@2 + +[Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0); + var@7 := move l; + var@6 := move split_list(move var@7); + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := move l; + var@6 := move split_list(move var@7); + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := move l +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move l + +[Debug] +**About to evaluate statement**: [ + var@6 := move split_list(move var@7); + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := move split_list(move var@7) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> ⊥ : (i32, test1::List) ; + Some (var@7) -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move var@7 + +[Debug] +**About to evaluate statement**: [ + hd := copy (var@6).0; + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> s@1 : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + hd := copy (var@6).0 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> s@1 : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> s@1 : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +copy (var@6).0 + +[Debug] expand_symbolic_value: s@1 : (i32, test1::List) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> s@1 : (i32, test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> ⊥ : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (s@2 : i32, s@3 : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +[Debug] +**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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (s@2 : i32, s@3 : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + tl := move (var@6).1 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (s@2 : i32, s@3 : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (s@2 : i32, s@3 : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move (var@6).1 + +[Debug] +**About to evaluate statement**: [ + var@10 := copy hd; + var@9 := move var@10 == 0: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + drop(tl); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := copy hd +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +copy hd + +[Debug] +**About to evaluate statement**: [ + var@9 := move var@10 == 0: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + drop(tl); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@2 : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := move var@10 == 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@2 : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@2 : i32 ; +} + + +- op: +move var@10 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + var@8 := ¬ move var@9; + assert(¬move var@8); + drop(tl); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@4 : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := ¬ move var@9 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@4 : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@4 : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move var@9 + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@8); + drop(tl); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> s@5 : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@8) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> s@5 : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + +- op: +move var@8 + +[Debug] +**About to evaluate statement**: [ + drop(tl); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + drop(tl) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> s@3 : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] drop_value: place: tl +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (l) -> ⊥ : test1::List ; + Some (var@2) -> ⊥ : std::boxed::Box> ; + Some (var@3) -> ⊥ : test1::List ; + Some (hd) -> s@2 : i32 ; + Some (tl) -> ⊥ : test1::List ; + Some (var@6) -> (s@2 : i32, ⊥ : test1::List) ; + Some (var@7) -> ⊥ : test1::List ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; +} + + + +[Debug] test_function_symbolic: get_elem +[Debug] +**About to evaluate statement**: [ + var@4 := copy b; + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + }; + return +] + +**Context**: +# 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> s@0 : bool ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy b +] + +**Context**: +# 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> s@0 : bool ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + + +[Debug] 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> s@0 : bool ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + +- op: +copy b + +[Debug] +**About to evaluate statement**: [ + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + }; + return +] + +**Context**: +# 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> s@0 : bool ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> s@0 : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + } +] + +**Context**: +# 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> s@0 : bool ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> s@0 : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + true, + proj_loans (s@1 : &r@0 mut (T)), + proj_loans (s@2 : &r@0 mut (T)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> true ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> true ; +} + + +- op: +move var@4 + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(x) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + true, + proj_loans (s@1 : &r@0 mut (T)), + proj_loans (s@2 : &r@0 mut (T)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> true ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + + +[Debug] expand_symbolic_value: s@1 : &r@0 mut (T) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + true, + proj_loans (s@1 : &r@0 mut (T)), + proj_loans (s@2 : &r@0 mut (T)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> true ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + true, + ⌊mut@0, proj_loans (s@3 : T)⌋, + proj_loans (s@2 : &r@0 mut (T)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> true ; + Some (x) -> &mut@0 (s@3 : T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + +[Debug] 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> false ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> false ; +} + + +- op: +move var@4 + +[Debug] +**About to evaluate statement**: [ + var@0 := move y +] + +**Context**: +# 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> false ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + + +[Debug] 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)) + } + Some (var@0) -> ⊥ : &'_ mut (T) ; + Some (b) -> false ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + +- op: +move y + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + true, + ⌊mut@0, proj_loans (s@3 : T)⌋, + proj_loans (s@2 : &r@0 mut (T)) + } + Some (var@0) -> &mut@1 (s@3 : T) ; + Some (b) -> true ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (y) -> s@2 : &r@0 mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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)) + } + Some (var@0) -> s@2 : &r@0 mut (T) ; + Some (b) -> false ; + Some (x) -> s@1 : &r@0 mut (T) ; + Some (y) -> ⊥ : &'_ mut (T) ; + Some (var@4) -> ⊥ : bool ; +} + + + +[Debug] test_function_symbolic: get_elem_test +[Debug] +**About to evaluate statement**: [ + x := 0: i32; + y := 0: i32; + var@5 := &mut x; + var@4 := &two-phase *(var@5); + var@7 := &mut y; + var@6 := &two-phase *(var@7); + z := move get_elem(true, move var@4, move var@6); + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + y := 0: i32; + var@5 := &mut x; + var@4 := &two-phase *(var@5); + var@7 := &mut y; + var@6 := &two-phase *(var@7); + z := move get_elem(true, move var@4, move var@6); + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + y := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> ⊥ : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + var@5 := &mut x; + var@4 := &two-phase *(var@5); + var@7 := &mut y; + var@6 := &two-phase *(var@7); + z := move get_elem(true, move var@4, move var@6); + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := &two-phase *(var@5); + var@7 := &mut y; + var@6 := &two-phase *(var@7); + z := move get_elem(true, move var@4, move var@6); + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (0: i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := &two-phase *(var@5) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (0: i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := &mut y; + var@6 := &two-phase *(var@7); + z := move get_elem(true, move var@4, move var@6); + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := &mut y +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> 0: i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := &two-phase *(var@7); + z := move get_elem(true, move var@4, move var@6); + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (0: i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := &two-phase *(var@7) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (0: i32) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + z := move get_elem(true, move var@4, move var@6); + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⌊inactivated_mut@3⌋ ; + Some (var@7) -> &mut@2 (@shared_loan({3}, 0: i32)) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + z := move get_elem(true, move var@4, move var@6) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⌊inactivated_mut@1⌋ ; + Some (var@5) -> &mut@0 (@shared_loan({1}, 0: i32)) ; + Some (var@6) -> ⌊inactivated_mut@3⌋ ; + Some (var@7) -> &mut@2 (@shared_loan({3}, 0: i32)) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] activate_inactivated_mut_borrow: resulting value: +0: i32 +[Debug] activate_inactivated_mut_borrow: resulting value: +0: i32 +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> &mut@1 (0: i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> &mut@3 (0: i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +true + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> &mut@1 (0: i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> &mut@3 (0: i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> &mut@3 (0: i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@6 + +[Debug] +**About to evaluate statement**: [ + var@8 := copy *(z); + *(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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> s@0 : &r@0 mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + proj_loans (s@0 : &r@0 mut (i32)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := copy *(z) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> s@0 : &r@0 mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + proj_loans (s@0 : &r@0 mut (i32)) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> s@0 : &r@0 mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + proj_loans (s@0 : &r@0 mut (i32)) + } +} + + +- op: +copy *(z) + +[Debug] expand_symbolic_value: s@0 : &r@0 mut (i32) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> s@0 : &r@0 mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + proj_loans (s@0 : &r@0 mut (i32)) + } +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@1 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +[Debug] +**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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@1 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + *(z) := copy var@8 + 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@1 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@1 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@1 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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: +1: i32 + +[Debug] +**About to evaluate statement**: [ + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@12 := copy *(z) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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) + +[Debug] +**About to evaluate statement**: [ + 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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@2 : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@11 := move var@12 == 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@2 : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@2 : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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: +move var@12 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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: +1: i32 + +[Debug] +**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) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@3 : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@3 : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@3 : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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: +move var@11 + +[Debug] +**About to evaluate statement**: [ + 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) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> s@4 : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@10) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> s@4 : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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: +move var@10 + +[Debug] +**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**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@15 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (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 x + +[Debug] end borrow: 0: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 1)) +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + +[Debug] end_abstraction: 0 +- context after parent abstractions ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + +[Debug] end borrow: 4: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + +[Debug] give_back: +- bid: 4 +- content: &mut@4 (s@2 : i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +[Debug] give_back_value: +- bid: 4 +- value: s@2 : i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +[Debug] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + @ended_mut_loan{ given_back=proj_borrows (s@2 : i32 <: i32); child=proj_loans (s@1 : i32) } + } +} + +[Debug] give_back_value: +- bid: 1 +- value: s@5 : i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + ⊥ : &r@0 mut (i32), + &mut@3 (0: i32), + @ended_mut_loan{ given_back=proj_borrows (s@2 : i32 <: i32); child=proj_loans (s@1 : i32) } + } +} + + +[Debug] give_back_value: +- bid: 3 +- value: s@6 : i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (s@5 : i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + ⊥ : &r@0 mut (i32), + ⊥ : &r@0 mut (i32), + @ended_mut_loan{ given_back=proj_borrows (s@2 : i32 <: i32); child=proj_loans (s@1 : i32) } + } +} + + +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> &mut@4 (s@2 : i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (⌊mut@1⌋) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (⌊mut@3⌋) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (s@5 : i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] end borrow: 0: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> &mut@0 (s@5 : i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 0 +- content: &mut@0 (s@5 : i32) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +[Debug] give_back_value: +- bid: 0 +- value: s@5 : i32 +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +[Debug] +**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**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> s@5 : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@14 := move var@15 == 1: i32 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> s@5 : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> s@5 : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@15 + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +1: i32 + +[Debug] +**About to evaluate statement**: [ + 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: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@7 : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@13 := ¬ move var@14 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@7 : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@7 : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@14 + +[Debug] +**About to evaluate statement**: [ + 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: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> s@8 : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@13) +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> s@8 : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> true ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@13 + +[Debug] +**About to evaluate statement**: [ + var@18 := copy y; + var@17 := move var@18 == 0: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@18 := copy y +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +copy y + +[Debug] end borrow: 2: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> &mut@2 (s@6 : i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 2 +- content: &mut@2 (s@6 : i32) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +[Debug] give_back_value: +- bid: 2 +- value: s@6 : i32 +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> ⌊mut@2⌋ ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +[Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 0: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> s@6 : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 0: i32 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> s@6 : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> s@6 : i32 ; +} + + +- op: +move var@18 + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@9 : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@9 : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@9 : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@17 + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@16); + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> s@10 : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@16) +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> s@10 : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> true ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + +- op: +move var@16 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@5 : i32 ; + Some (y) -> s@6 : i32 ; + Some (z) -> ⊥ : &'_ mut (i32) ; + Some (var@4) -> ⊥ : &'_ mut (i32) ; + Some (var@5) -> ⊥ : &'_ mut (i32) ; + Some (var@6) -> ⊥ : &'_ mut (i32) ; + Some (var@7) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> s@1 : i32 ; + Some (var@9) -> ⊥ : (i32, bool) ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : i32 ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : i32 ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : bool ; + Some (var@18) -> ⊥ : i32 ; +} + + + +[Debug] test_function_symbolic: id_mut_mut +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**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))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (T)) ; + Some (x) -> s@0 : &r@0 mut (&r@1 mut (T)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (T)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**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))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (T)) ; + Some (x) -> s@0 : &r@0 mut (&r@1 mut (T)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (T)) ; +} + + + +[Debug] 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))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (T)) ; + Some (x) -> s@0 : &r@0 mut (&r@1 mut (T)) ; + Some (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))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (T)) ; + Some (x) -> &mut@0 (s@1 : &r@1 mut (T)) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (T)) ; +} + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**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))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (T)) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : &r@1 mut (T)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**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))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (T)) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : &r@1 mut (T)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**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))) + } + Some (var@0) -> &mut@2 (s@1 : &r@1 mut (T)) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (⌊mut@2⌋) ; +} + + + +[Debug] test_function_symbolic: id_mut_pair +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**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))) + } + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + Some (x) -> s@0 : &r@0 mut ((&r@0 mut (T), u32)) ; + Some (var@2) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**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))) + } + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + Some (x) -> s@0 : &r@0 mut ((&r@0 mut (T), u32)) ; + Some (var@2) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; +} + + + +[Debug] 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))) + } + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + Some (x) -> s@0 : &r@0 mut ((&r@0 mut (T), u32)) ; + Some (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))⌋ + } + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + Some (x) -> &mut@0 (s@1 : (&r@0 mut (T), u32)) ; + Some (var@2) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; +} + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : (&r@0 mut (T), u32))⌋ + } + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : (&r@0 mut (T), u32)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : (&r@0 mut (T), u32))⌋ + } + Some (var@0) -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : (&r@0 mut (T), u32)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : (&r@0 mut (T), u32))⌋ + } + Some (var@0) -> &mut@2 (s@1 : (&r@0 mut (T), u32)) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (⌊mut@2⌋) ; +} + + + +[Debug] test_function_symbolic: id_mut_pair_test1 +[Debug] +**About to evaluate statement**: [ + x := 0: u32; + px := &mut x; + var@4 := move px; + (p).0 := move var@4; + (p).1 := 1: u32; + pp0 := &mut p; + var@7 := &two-phase *(pp0); + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +0: u32 + +[Debug] +**About to evaluate statement**: [ + px := &mut x; + var@4 := move px; + (p).0 := move var@4; + (p).1 := 1: u32; + pp0 := &mut p; + var@7 := &two-phase *(pp0); + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: u32 ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := move px; + (p).0 := move var@4; + (p).1 := 1: u32; + pp0 := &mut p; + var@7 := &two-phase *(pp0); + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := move px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move px + +[Debug] +**About to evaluate statement**: [ + (p).0 := move var@4; + (p).1 := 1: u32; + pp0 := &mut p; + var@7 := &two-phase *(pp0); + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> &mut@0 (0: u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + (p).0 := move var@4 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> &mut@0 (0: u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⊥ : (&'_ mut (u32), u32) ; + Some (var@4) -> &mut@0 (0: u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move var@4 + +[Debug] expand_bottom_value_from_projection: +pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) +ty: (Types.Adt (Types.Tuple, [], + [(Types.Ref (Types.Erased, (Types.Integer Types.U32), Types.Mut)); + (Types.Integer Types.U32)] + )) +[Debug] +**About to evaluate statement**: [ + (p).1 := 1: u32; + pp0 := &mut p; + var@7 := &two-phase *(pp0); + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), ⊥ : u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + (p).1 := 1: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), ⊥ : u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), ⊥ : u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +1: u32 + +[Debug] +**About to evaluate statement**: [ + pp0 := &mut p; + var@7 := &two-phase *(pp0); + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), 1: u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + pp0 := &mut p +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> (&mut@0 (0: u32), 1: u32) ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := &two-phase *(pp0); + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 ((&mut@0 (0: u32), 1: u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := &two-phase *(pp0) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 ((&mut@0 (0: u32), 1: u32)) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + pp1 := move id_mut_pair(move var@7); + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + pp1 := move id_mut_pair(move var@7) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] activate_inactivated_mut_borrow: resulting value: +(&mut@0 (0: u32), 1: u32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (var@7) -> &mut@2 ((&mut@0 (0: u32), 1: u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move var@7 + +[Debug] +**About to evaluate statement**: [ + y := 2: u32; + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + y := 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⊥ : u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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 + +[Debug] +**About to evaluate statement**: [ + var@10 := &mut y; + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> 2: u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := &mut y +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> 2: u32 ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@3 (2: 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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := &mut *(var@10) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@3 (2: 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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> &mut@4 (2: u32) ; + Some (var@10) -> &mut@3 (⌊mut@4⌋) ; + 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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *((pp1).0) := move var@9 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> &mut@4 (2: u32) ; + Some (var@10) -> &mut@3 (⌊mut@4⌋) ; + 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))) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> &mut@4 (2: u32) ; + Some (var@10) -> &mut@3 (⌊mut@4⌋) ; + 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: +move var@9 + +[Debug] expand_symbolic_value: s@0 : &r@0 mut ((&r@0 mut (u32), u32)) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (var@10) -> &mut@3 (⌊mut@4⌋) ; + 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))) + } + None -> &mut@4 (2: u32) ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@5 (s@1 : (&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))⌋ + } + None -> &mut@4 (2: u32) ; +} + + +[Debug] expand_symbolic_value: s@1 : (&r@0 mut (u32), u32) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@5 (s@1 : (&r@0 mut (u32), u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))⌋ + } + None -> &mut@4 (2: u32) ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@5 ((s@2 : &r@0 mut (u32), s@3 : u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))⌋ + } + None -> &mut@4 (2: u32) ; +} + + +[Debug] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))⌋ + } +} + + +- op: +3: u32 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (u32) ; + Some (p) -> ⌊mut@1⌋ ; + Some (var@4) -> ⊥ : &'_ mut (u32) ; + Some (pp0) -> &mut@1 (⌊mut@2⌋) ; + Some (pp1) -> &mut@5 ((&mut@4 (2: u32), 3: u32)) ; + Some (var@7) -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + Some (y) -> ⌊mut@3⌋ ; + Some (var@9) -> ⊥ : &'_ mut (u32) ; + Some (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))⌋ + } +} + + + +[Debug] test_function_symbolic: id_mut_mut_pair +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**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)))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + Some (x) -> s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**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)))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + Some (x) -> s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; +} + + + +[Debug] 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)))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + Some (x) -> s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) ; + Some (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)))⌋ + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + Some (x) -> &mut@0 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; +} + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**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)))⌋ + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**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)))⌋ + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**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)))⌋ + } + Some (var@0) -> &mut@2 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (⌊mut@2⌋) ; +} + + + +[Debug] test_function_symbolic: id_mut_mut_mut_same +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**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)))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + Some (x) -> s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**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)))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + Some (x) -> s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; +} + + + +[Debug] 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)))) + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + Some (x) -> s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) ; + Some (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)))⌋ + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + Some (x) -> &mut@0 (s@1 : &r@0 mut (&r@0 mut (u32))) ; + Some (var@2) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; +} + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**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)))⌋ + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : &r@0 mut (&r@0 mut (u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**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)))⌋ + } + Some (var@0) -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (s@1 : &r@0 mut (&r@0 mut (u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**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)))⌋ + } + Some (var@0) -> &mut@2 (s@1 : &r@0 mut (&r@0 mut (u32))) ; + Some (x) -> &mut@0 (⌊mut@1⌋) ; + Some (var@2) -> &mut@1 (⌊mut@2⌋) ; +} + + + +[Debug] test_function_symbolic: id_borrow1 +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@1 (u32))), + proj_loans (s@1 : &r@0 (&r@0 mut (u32))) + } + abs@1{parents={0}}{regions={1}} { + proj_loans (s@0 : &r@0 mut (&r@1 (u32))), + proj_loans (s@1 : &r@0 (&r@0 mut (u32))) + } + Some (var@0) -> ⊥ : () ; + Some (_x) -> s@0 : &r@0 mut (&r@1 (u32)) ; + Some (_y) -> s@1 : &r@0 (&r@0 mut (u32)) ; +} + + + +[Debug] test_function_symbolic: test_static +[Debug] +**About to evaluate statement**: [ + var@0 := copy x; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : &'_ (u32) ; + Some (x) -> s@0 : &'static (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : &'_ (u32) ; + Some (x) -> s@0 : &'static (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : &'_ (u32) ; + Some (x) -> s@0 : &'static (u32) ; +} + + +- op: +copy x + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> s@0 : &'static (u32) ; + Some (x) -> s@0 : &'static (u32) ; +} + + + +[Debug] test_function_symbolic: test_char +[Debug] +**About to evaluate statement**: [ + var@0 := a; + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : char ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := a +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : char ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : char ; +} + + +- op: +a + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> a ; +} + + + +[Debug] test_function_symbolic: test_loops +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move test_loop1(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**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 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := move var@4 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> s@0 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@4 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> s@1 : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := ¬ move var@3 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> s@1 : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> s@1 : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@3 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> s@2 : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@2) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> s@2 : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> true ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@2 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move test_loop2(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@3 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@3 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@3 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +1: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@4 : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@4 : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@4 : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@7 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> s@5 : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@6) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> s@5 : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> true ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@6 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move test_loop3(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@12 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@6 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@11 := move var@12 == 3: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@6 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@6 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@12 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +3: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@7 : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@7 : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@7 : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@11 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> s@8 : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@10) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> s@8 : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> true ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@10 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move test_loop4(20: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +20: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@16 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> s@9 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@15 := move var@16 == 1: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> s@9 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> s@9 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@16 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +1: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> s@10 : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@14 := ¬ move var@15 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> s@10 : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> s@10 : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@15 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> s@11 : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@14) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> s@11 : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> true ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@14 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move test_loop5(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@20 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> s@12 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@19 := move var@20 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> s@12 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> s@12 : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@20 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> s@13 : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@18 := ¬ move var@19 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> s@13 : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> s@13 : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@19 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> s@14 : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@18) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> s@14 : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> true ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@18 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move test_loop6(2: u32) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> ⊥ : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@24 := copy x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> s@15 : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@23 := move var@24 == 2: u32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> s@15 : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> s@15 : u32 ; +} + + +- op: +move var@24 + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +2: u32 + +[Debug] +**About to evaluate statement**: [ + var@22 := ¬ move var@23; + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> s@16 : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@22 := ¬ move var@23 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> s@16 : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> s@16 : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@23 + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@22); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> s@17 : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@22) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> s@17 : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> true ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + +- op: +move var@22 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@0 : u32 ; + Some (var@2) -> ⊥ : bool ; + Some (var@3) -> ⊥ : bool ; + Some (var@4) -> ⊥ : u32 ; + Some (x) -> s@3 : u32 ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : u32 ; + Some (x) -> s@6 : u32 ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : u32 ; + Some (x) -> s@9 : u32 ; + Some (var@14) -> ⊥ : bool ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : u32 ; + Some (x) -> s@12 : u32 ; + Some (var@18) -> ⊥ : bool ; + Some (var@19) -> ⊥ : bool ; + Some (var@20) -> ⊥ : u32 ; + Some (x) -> s@15 : u32 ; + Some (var@22) -> ⊥ : bool ; + Some (var@23) -> ⊥ : bool ; + Some (var@24) -> ⊥ : u32 ; +} + + + +[Debug] test_function_symbolic: id_mut_mut_test1 +[Debug] +**About to evaluate statement**: [ + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppy := move id_mut_mut(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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppy := move id_mut_mut(move var@5) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] activate_inactivated_mut_borrow: resulting value: +&mut@0 (0: i32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + +- op: +move var@5 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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))) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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))) + } +} + + +- op: +1: i32 + +[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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))) + } + None -> 1: i32 ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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))) + } + None -> 1: i32 ; +} + + +[Debug] expand_symbolic_value: s@1 : &r@1 mut (i32) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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))) + } + None -> 1: i32 ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (s@2 : i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } + None -> 1: i32 ; +} + + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := copy *(px) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + + +- op: +copy *(px) + +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + +[Debug] end_abstraction: 0 +- context after parent abstractions ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + +[Debug] give_back: +- bid: 3 +- content: &mut@3 (&mut@4 (1: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + + +[Debug] give_back_value: +- bid: 3 +- value: &mut@4 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋) + } +} + + +[Debug] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + +[Debug] give_back_value: +- bid: 2 +- value: s@3 : &r@1 mut (i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + ⊥ : &r@0 mut (&r@1 mut (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)⌋} + } +} + + +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (s@3 : &r@1 mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + +[Debug] end borrow: 1: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (s@3 : &r@1 mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + +[Debug] give_back: +- bid: 1 +- content: &mut@1 (s@3 : &r@1 mut (i32)) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +[Debug] give_back_value: +- bid: 1 +- value: s@3 : &r@1 mut (i32) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +[Debug] expand_symbolic_value: s@3 : &r@1 mut (i32) + +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> s@3 : &r@1 mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@4 : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@4 : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> s@4 : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +- op: +move var@8 + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +- op: +1: i32 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@5 : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@5 : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> s@5 : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +- op: +move var@7 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> s@6 : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@6) +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> s@6 : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> true ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +- op: +move var@6 + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@11 := copy x +] + +**Context**: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +- op: +copy x + +[Debug] end borrow: 0: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1) +[Debug] end_abstraction: 1 +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + +[Debug] end_abstraction: 1 +- context after parent abstractions ended: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + +[Debug] end borrow: 5: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + +[Debug] give_back: +- bid: 5 +- content: &mut@5 (s@4 : i32) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +[Debug] give_back_value: +- bid: 5 +- value: s@4 : i32 +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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)⌋} + } +} + + +[Debug] end borrow: 4: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + +[Debug] end borrow: 4: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1) +[Debug] end borrow: 4: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + +[Debug] give_back: +- bid: 4 +- content: &mut@4 (1: i32) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } +} + + +[Debug] end_abstraction: 1 +- context after loans ended: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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) }} + } +} + +[Debug] give_back_value: +- bid: 0 +- value: s@7 : i32 +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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=⊥ : &r@1 mut (i32)), + @ended_ignored_mut_loan{ given_back=⊥ : &r@1 mut (i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + +[Debug] end_abstraction: 1 +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@5 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + +[Debug] +**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: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@7 : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := move var@11 == 1: i32 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@7 : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@7 : i32 ; +} + + +- op: +move var@11 + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + +- op: +1: i32 + +[Debug] +**About to evaluate statement**: [ + var@9 := ¬ move var@10; + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@8 : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := ¬ move var@10 +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@8 : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@8 : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + +- op: +move var@10 + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@9); + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> s@9 : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@9) +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> s@9 : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + +- op: +move var@9 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@6) -> ⊥ : bool ; + Some (var@7) -> ⊥ : bool ; + Some (var@8) -> ⊥ : i32 ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; +} + + + +[Debug] test_function_symbolic: id_mut_mut_test2 +[Debug] +**About to evaluate statement**: [ + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := &two-phase *(ppx) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppy := move id_mut_mut(move var@5) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] activate_inactivated_mut_borrow: resulting value: +&mut@0 (0: i32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + +- op: +move var@5 + +[Debug] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32; + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *(*(ppy)) := 1: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + +- op: +1: i32 + +[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + None -> 1: i32 ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) + } + None -> 1: i32 ; +} + + +[Debug] expand_symbolic_value: s@1 : &r@1 mut (i32) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) + } + None -> 1: i32 ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (s@2 : i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + None -> 1: i32 ; +} + + +[Debug] +**About to evaluate statement**: [ + y := 2: i32; + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] +**About to evaluate statement**: [ + y := 2: i32 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⊥ : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + +- op: +2: i32 + +[Debug] +**About to evaluate statement**: [ + py := &mut y; + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 2: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] +**About to evaluate statement**: [ + py := &mut y +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> 2: i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := &mut *(py); + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (2: i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := &mut *(py) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (2: i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *(ppy) := move var@8; + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> &mut@6 (2: i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *(ppy) := move var@8 +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> &mut@6 (2: i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> &mut@6 (2: i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } +} + + +- op: +move var@8 + +[Debug] end borrow: 4: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⊥ : &'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + None -> &mut@6 (2: i32) ; + None -> &mut@4 (1: i32) ; +} + +[Debug] give_back: +- bid: 4 +- content: &mut@4 (1: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⊥ : &'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + None -> &mut@6 (2: i32) ; + None -> ⊥ : &'_ mut (i32) ; +} + + +[Debug] give_back_value: +- bid: 4 +- value: 1: i32 +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⊥ : &'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + None -> &mut@6 (2: i32) ; + None -> ⊥ : &'_ mut (i32) ; +} + + +[Debug] +**About to evaluate statement**: [ + var@11 := copy *(px); + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@11 := copy *(px) +] + +**Context**: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + +- op: +copy *(px) + +[Debug] end borrow: 1: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + +[Debug] end_abstraction: 0 +- context after parent abstractions ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + +[Debug] give_back: +- bid: 3 +- content: &mut@3 (&mut@6 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + +[Debug] give_back_value: +- bid: 3 +- value: &mut@6 (2: i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + +[Debug] end_abstraction: 0 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)} } + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[Debug] give_back_value: +- bid: 2 +- value: s@3 : &r@1 mut (i32) +- context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + ⊥ : &r@0 mut (&r@1 mut (i32)), + @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)} } + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + +[Debug] end_abstraction: 0 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@6 (2: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + } +} + + +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (s@3 : &r@1 mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[Debug] end borrow: 1: +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (s@3 : &r@1 mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + +[Debug] give_back: +- bid: 1 +- content: &mut@1 (s@3 : &r@1 mut (i32)) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + +[Debug] give_back_value: +- bid: 1 +- value: s@3 : &r@1 mut (i32) +- context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + +[Debug] expand_symbolic_value: s@3 : &r@1 mut (i32) + +- original context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> s@3 : &r@1 mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + +- new context: +# Ended regions: {0} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} + + +[Debug] +**About to evaluate statement**: [ + var@10 := move var@11 == 2: i32; + var@9 := ¬ move var@10; + assert(¬move var@9); + *(px) := 3: i32; + var@14 := copy x; + var@13 := move var@14 == 1: i32; + var@12 := ¬ move var@13; + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); return ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@4 : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } [Debug] **About to evaluate statement**: [ - var@19 := move var@20 == 2: u32 + var@10 := move var@11 == 2: i32 ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@4 : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } -[Debug] -**About to evaluate statement**: [ - var@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: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> s@4 : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +- op: +move var@11 -[Debug] -**About to evaluate statement**: [ - var@18 := ¬ move var@19 -] - -**Context**: -# Ended regions: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - 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); + 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: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@5 : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } [Debug] **About to evaluate statement**: [ - assert(¬move var@18) + var@9 := ¬ move var@10 ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@5 : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } -[Debug] -**About to evaluate statement**: [ - 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: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@5 : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +- op: +move var@10 [Debug] **About to evaluate statement**: [ - x := move test_loop6(2: u32) + 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: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> s@6 : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } [Debug] **About to evaluate statement**: [ - var@24 := copy x; - var@23 := move var@24 == 2: u32; - var@22 := ¬ move var@23; - assert(¬move var@22); - return + assert(¬move var@9) ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> s@6 : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } -[Debug] -**About to evaluate statement**: [ - var@24 := copy x -] - -**Context**: -# Ended regions: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> true ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +- op: +move var@9 [Debug] **About to evaluate statement**: [ - var@23 := move var@24 == 2: u32; - var@22 := ¬ move var@23; - assert(¬move var@22); + *(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: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } [Debug] **About to evaluate statement**: [ - var@23 := move var@24 == 2: u32 + *(px) := 3: i32 ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } -[Debug] -**About to evaluate statement**: [ - var@22 := ¬ move var@23; - assert(¬move var@22); - return -] - -**Context**: -# Ended regions: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (s@4 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +- op: +3: i32 [Debug] **About to evaluate statement**: [ - var@22 := ¬ move var@23 + 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: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } [Debug] **About to evaluate statement**: [ - assert(¬move var@22); - return + var@14 := copy x ] **Context**: -# Ended regions: {} +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@22) -] - -**Context**: -# Ended regions: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +- op: +copy x -[Debug] -**About to evaluate statement**: [ - return -] - -**Context**: -# Ended regions: {} +[Debug] end borrow: 0: +- original context: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } - - -[Debug] test_function_symbolic: id_mut_mut_test1 -[Debug] -**About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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: {} +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1) +[Debug] end_abstraction: 1 +- original context: +# Ended regions: {0} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +[Debug] end_abstraction: 1 +- context after parent abstractions ended: +# Ended regions: {0} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} -[Debug] -**About to evaluate statement**: [ - x := 0: i32 -] - -**Context**: -# Ended regions: {} +[Debug] end borrow: 7: +- original context: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +[Debug] give_back: +- bid: 7 +- content: &mut@7 (3: i32) +- context: +# Ended regions: {0} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} -[Debug] -**About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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: {} +[Debug] give_back_value: +- bid: 7 +- value: 3: i32 +- context: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } - -[Debug] -**About to evaluate statement**: [ - px := &mut x -] - -**Context**: -# Ended regions: {} +[Debug] end_abstraction: 1 +- context after loans ended: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +[Debug] give_back_value: +- bid: 0 +- value: s@7 : i32 +- context: +# Ended regions: {0} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=⊥ : &r@1 mut (i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } +} -[Debug] -**About to evaluate statement**: [ - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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: {} +[Debug] give_back_value: +- bid: 6 +- value: s@8 : i32 +- context: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=⊥ : &r@1 mut (i32)), + @ended_ignored_mut_loan{ given_back=⊥ : &r@1 mut (i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } - -[Debug] -**About to evaluate statement**: [ - ppx := &mut px -] - -**Context**: -# Ended regions: {} +[Debug] end_abstraction: 1 +- original context: +# Ended regions: {0} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@7 (3: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (⌊mut@6⌋) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }} + } } +- new context: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} [Debug] **About to evaluate statement**: [ - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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); + 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: {} +# Ended regions: {0, 1} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@7 : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@5 := &two-phase *(ppx) + var@13 := move var@14 == 1: i32 ] **Context**: -# Ended regions: {} +# Ended regions: {0, 1} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@7 : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - ppy := move id_mut_mut(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: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> s@7 : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } +- op: +move var@14 -[Debug] -**About to evaluate statement**: [ - ppy := move id_mut_mut(move var@5) -] - -**Context**: -# Ended regions: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } +- op: +1: i32 -[Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Borrow - (Values.MutBorrow (, - { 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)) } [Debug] **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); + 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: {} +# Ended regions: {0, 1} # 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> s@9 : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - *(*(ppy)) := 1: i32 + var@12 := ¬ move var@13 ] **Context**: -# Ended regions: {} +# Ended regions: {0, 1} # 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> s@9 : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) - -- original context: -# Ended regions: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> s@9 : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -- new context: -# Ended regions: {} +- op: +move var@13 + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@12); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} # 1 frame(s) # Frame 0: { - 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> s@10 : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] expand_symbolic_value: s@1 : &r@1 mut (i32) -- original context: -# Ended regions: {} +[Debug] +**About to evaluate statement**: [ + assert(¬move var@12) +] + +**Context**: +# Ended regions: {0, 1} # 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))) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> s@10 : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -- new context: -# Ended regions: {} + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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)⌋) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> true ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } +- op: +move var@12 + [Debug] **About to evaluate statement**: [ - var@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); + var@17 := copy y; + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); return ] **Context**: -# Ended regions: {} +# Ended regions: {0, 1} # 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)⌋) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@8 := copy *(px) + var@17 := copy y ] **Context**: -# Ended regions: {} +# Ended regions: {0, 1} # 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)⌋) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] end_abstraction: 0 -- original context: -# Ended regions: {} +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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)⌋) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] end_abstraction: 0 -- context after parent abstractions ended: -# Ended regions: {} + +- op: +copy y + +[Debug] end borrow: 5: +- original context: +# Ended regions: {0, 1} # 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)⌋) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> &mut@5 (s@8 : i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; +} + +[Debug] give_back: +- bid: 5 +- content: &mut@5 (s@8 : i32) +- context: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] end_abstraction: 0 -- context after loans ended: -# Ended regions: {} + +[Debug] give_back_value: +- bid: 5 +- value: s@8 : i32 +- context: +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> ⌊mut@5⌋ ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] end_abstraction: 0 -- original context: -# Ended regions: {} + +[Debug] +**About to evaluate statement**: [ + var@16 := move var@17 == 3: i32; + var@15 := ¬ move var@16; + assert(¬move var@15); + return +] + +**Context**: +# Ended regions: {0, 1} # 1 frame(s) # Frame 0: { - 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)⌋) - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@8 : i32 ; } -- new context: -# Ended regions: {0} + +[Debug] +**About to evaluate statement**: [ + var@16 := move var@17 == 3: i32 +] + +**Context**: +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@8 : i32 ; } -[Debug] expand_symbolic_value: s@3 : &r@1 mut (i32) -- original context: -# Ended regions: {0} + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> s@8 : i32 ; } -- new context: -# Ended regions: {0} +- op: +move var@17 + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } +- op: +3: i32 + [Debug] **About to evaluate statement**: [ - var@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); + var@15 := ¬ move var@16; + assert(¬move var@15); return ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> s@11 : bool ; + Some (var@17) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@7 := move var@8 == 1: i32 + var@15 := ¬ move var@16 ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> s@11 : bool ; + Some (var@17) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> s@11 : bool ; + Some (var@17) -> ⊥ : i32 ; } +- op: +move var@16 [Debug] **About to evaluate statement**: [ - 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); + assert(¬move var@15); return ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> s@12 : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@6 := ¬ move var@7 + assert(¬move var@15) ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> s@12 : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } -[Debug] -**About to evaluate statement**: [ - assert(¬move var@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} +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> true ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } +- op: +move var@15 [Debug] **About to evaluate statement**: [ - assert(¬move var@6) + return ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 1} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> s@7 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (y) -> s@8 : i32 ; + Some (py) -> ⊥ : &'_ mut (i32) ; + Some (var@8) -> ⊥ : &'_ mut (i32) ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : bool ; + Some (var@11) -> ⊥ : i32 ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : bool ; + Some (var@14) -> ⊥ : i32 ; + Some (var@15) -> ⊥ : bool ; + Some (var@16) -> ⊥ : bool ; + Some (var@17) -> ⊥ : i32 ; } +[Debug] test_function_symbolic: id_mut_mut_test3 [Debug] **About to evaluate statement**: [ - var@11 := copy x; - var@10 := move var@11 == 1: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); + x := 0: i32; + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@11 := copy x + x := 0: i32 ] **Context**: -# Ended regions: {0} +# Ended regions: {} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -[Debug] end_abstraction: 1 -- original context: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {} # 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⊥ : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -[Debug] end_abstraction: 1 -- context after parent abstractions ended: -# Ended regions: {0} + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + px := &mut x; + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return +] + +**Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -[Debug] end_abstraction: 1 -- context after loans ended: -# Ended regions: {0} + + +[Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# Ended regions: {} # 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) }} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> 0: i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -[Debug] end_abstraction: 1 -- original context: -# Ended regions: {0} + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px; + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return +] + +**Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - 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)⌋} - } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -- new context: -# Ended regions: {0, 1} + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# Ended regions: {} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@0 (0: i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } + + [Debug] **About to evaluate statement**: [ - var@10 := move var@11 == 1: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); + var@5 := &two-phase *(ppx); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@10 := move var@11 == 1: i32 + var@5 := &two-phase *(ppx) ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (&mut@0 (0: i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@9 := ¬ move var@10; - assert(¬move var@9); + ppy := move id_mut_mut(move var@5); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@9 := ¬ move var@10 + ppy := move id_mut_mut(move var@5) ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⌊inactivated_mut@2⌋ ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } +[Debug] activate_inactivated_mut_borrow: resulting value: +&mut@0 (0: i32) +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> &mut@2 (&mut@0 (0: i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + + +- op: +move var@5 + [Debug] **About to evaluate statement**: [ - assert(¬move var@9); + *(*(ppy)) := 1: i32; + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } } [Debug] **About to evaluate statement**: [ - assert(¬move var@9) + *(*(ppy)) := 1: i32 ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } } -[Debug] -**About to evaluate statement**: [ - return -] +[Debug] eval_operand: +- ctx: +# Ended regions: {} +# 1 frame(s) -**Context**: -# Ended regions: {0, 1} +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } +} + + +- op: +1: i32 + +[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) + +- original context: +# Ended regions: {} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> s@0 : &r@0 mut (&r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + } + None -> 1: i32 ; } +- new context: +# Ended regions: {} +# 1 frame(s) -[Debug] test_function_symbolic: id_mut_mut_test2 -[Debug] -**About to evaluate statement**: [ - x := 0: i32; - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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); +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) + } + None -> 1: i32 ; +} + + +[Debug] expand_symbolic_value: s@1 : &r@1 mut (i32) + +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@1 : &r@1 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32))) + } + None -> 1: i32 ; +} + + +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (s@2 : i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + None -> 1: i32 ; +} + + +[Debug] +**About to evaluate statement**: [ + var@7 := &two-phase *(ppy); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -72018,31 +146885,35 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } } [Debug] **About to evaluate statement**: [ - x := 0: i32 + var@7 := &two-phase *(ppy) ] **Context**: @@ -72051,52 +146922,44 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (&mut@4 (1: i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } } [Debug] **About to evaluate statement**: [ - px := &mut x; - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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); + ppz := move id_mut_mut(move var@7); + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -72106,31 +146969,35 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (@shared_loan({5}, &mut@4 (1: i32))) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⌊inactivated_mut@5⌋ ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } } [Debug] **About to evaluate statement**: [ - px := &mut x + ppz := move id_mut_mut(move var@7) ] **Context**: @@ -72139,85 +147006,81 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (@shared_loan({5}, &mut@4 (1: i32))) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⌊inactivated_mut@5⌋ ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } } -[Debug] -**About to evaluate statement**: [ - ppx := &mut px; - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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**: +[Debug] activate_inactivated_mut_borrow: resulting value: +&mut@4 (1: i32) +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> &mut@5 (&mut@4 (1: i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } } +- op: +move var@7 [Debug] **About to evaluate statement**: [ - ppx := &mut px + *(*(ppz)) := 2: i32; + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return ] **Context**: @@ -72226,51 +147089,43 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } } [Debug] **About to evaluate statement**: [ - var@5 := &two-phase *(ppx); - ppy := move id_mut_mut(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 + *(*(ppz)) := 2: i32 ] **Context**: @@ -72279,176 +147134,257 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } } -[Debug] -**About to evaluate statement**: [ - var@5 := &two-phase *(ppx) -] - -**Context**: +[Debug] 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)) ; - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } } +- op: +2: i32 -[Debug] -**About to evaluate statement**: [ - ppy := move id_mut_mut(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 -] +[Debug] expand_symbolic_value: s@3 : &r@2 mut (&r@3 mut (i32)) -**Context**: +- original 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> s@3 : &r@2 mut (&r@3 mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + proj_loans (s@3 : &r@2 mut (&r@3 mut (i32))) + } + None -> 2: i32 ; } +- new context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - ppy := move id_mut_mut(move var@5) -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (s@4 : &r@3 mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, proj_loans (s@4 : &r@3 mut (i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, proj_loans (s@4 : &r@3 mut (i32))) + } + None -> 2: i32 ; +} -**Context**: + +[Debug] expand_symbolic_value: s@4 : &r@3 mut (i32) + +- original 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (s@4 : &r@3 mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, proj_loans (s@4 : &r@3 mut (i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, proj_loans (s@4 : &r@3 mut (i32))) + } + None -> 2: i32 ; } +- new context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (s@5 : i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } + None -> 2: i32 ; +} + -[Debug] activate_inactivated_mut_borrow: resulting value: -{ Values.value = - (Values.Borrow - (Values.MutBorrow (, - { 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)) } [Debug] **About to evaluate statement**: [ - *(*(ppy)) := 1: i32; - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); + var@10 := copy *(px); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] @@ -72458,31 +147394,35 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (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)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) } } @@ -72490,7 +147430,7 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] **About to evaluate statement**: [ - *(*(ppy)) := 1: i32 + var@10 := copy *(px) ] **Context**: @@ -72499,169 +147439,223 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (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)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) } } -[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32)) - -- original context: +[Debug] eval_operand: +- ctx: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (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)), - proj_loans (s@0 : &r@0 mut (&r@1 mut (i32))) + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) } } -- new context: +- op: +copy *(px) + +[Debug] end borrow: 1: +- 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, proj_loans (s@1 : &r@1 mut (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, proj_loans (s@1 : &r@1 mut (i32))) + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) } } +[Debug] end borrow: 1: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 2)) +[Debug] end borrow: 2: +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] expand_symbolic_value: s@1 : &r@1 mut (i32) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } +} +[Debug] end borrow: 2: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 0) +[Debug] end_abstraction: 0 - original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, proj_loans (s@1 : &r@1 mut (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, proj_loans (s@1 : &r@1 mut (i32))) + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) } } - -- new context: +[Debug] end_abstraction: 0 +- context after parent abstractions ended: # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -72670,55 +147664,77 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } } +[Debug] end borrow: 3: +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - y := 2: i32; - py := &mut y; - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } +} -**Context**: +[Debug] end borrow: 3: found outer borrows/abs:(InterpreterBorrowsCore.InnerLoans (InterpreterBorrowsCore.Borrow 5)) +[Debug] end borrow: 5: +- original context: # Ended regions: {} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -72727,39 +147743,116 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } } +[Debug] end borrow: 5: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 2) +[Debug] end_abstraction: 2 +- original context: +# Ended regions: {} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } +} +[Debug] end_abstraction: 2 +- context after parent abstractions ended: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - y := 2: i32 -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } +} -**Context**: +[Debug] end borrow: 6: +- 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 (&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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -72768,55 +147861,81 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } } +[Debug] give_back: +- bid: 6 +- content: &mut@6 (&mut@7 (2: i32)) +- context: +# Ended regions: {} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } +} -[Debug] -**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**: +[Debug] give_back_value: +- bid: 6 +- value: &mut@7 (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 -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -72825,39 +147944,79 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } } +[Debug] end_abstraction: 2 +- context after loans ended: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - py := &mut y -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ignored_mut_loan(7, proj_loans (s@5 : i32)) } + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} -**Context**: +[Debug] give_back_value: +- bid: 5 +- value: s@6 : &r@3 mut (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 -> 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -72866,54 +148025,77 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@2{parents={}}{regions={2}} { + ⊥ : &r@2 mut (&r@3 mut (i32)), + @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ignored_mut_loan(7, proj_loans (s@5 : i32)) } + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } +[Debug] end_abstraction: 2 +- original context: +# Ended regions: {} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - var@8 := &mut *(py); - *(ppy) := move var@8; - var@11 := copy *(px); - var@10 := move var@11 == 2: i32; - var@9 := ¬ move var@10; - assert(¬move var@9); - *(px) := 3: i32; - var@14 := copy x; - var@13 := move var@14 == 1: i32; - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + &mut@2 (@ignored_mut_borrow(None, 0: i32)), + ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) + } +} -**Context**: -# Ended regions: {} + +- new context: +# Ended regions: {2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@6 : &r@3 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -72922,39 +148104,33 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } - - -[Debug] -**About to evaluate statement**: [ - var@8 := &mut *(py) -] - -**Context**: -# Ended regions: {} +[Debug] end borrow: 3: +- original context: +# Ended regions: {2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (s@6 : &r@3 mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -72963,53 +148139,35 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } - - -[Debug] -**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: {} +[Debug] give_back: +- bid: 3 +- content: &mut@3 (s@6 : &r@3 mut (i32)) +- context: +# Ended regions: {2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -73018,39 +148176,36 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } - -[Debug] -**About to evaluate statement**: [ - *(ppy) := move var@8 -] - -**Context**: -# Ended regions: {} +[Debug] give_back_value: +- bid: 3 +- value: s@6 : &r@3 mut (i32) +- context: +# Ended regions: {2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋ @@ -73059,105 +148214,86 @@ ty: (Types.Adt (Types.Tuple, [], @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } - -[Debug] -**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: {} +[Debug] end_abstraction: 0 +- context after loans ended: +# Ended regions: {2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + @ended_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child=@ignored_mut_loan(4, proj_loans (s@2 : i32)) } } abs@1{parents={0}}{regions={1}} { @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } - - -[Debug] -**About to evaluate statement**: [ - var@11 := copy *(px) -] - -**Context**: -# Ended regions: {} +[Debug] give_back_value: +- bid: 2 +- value: s@7 : &r@1 mut (i32) +- context: +# Ended regions: {2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { - &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋ + ⊥ : &r@0 mut (&r@1 mut (i32)), + @ended_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child=@ignored_mut_loan(4, proj_loans (s@2 : i32)) } } abs@1{parents={0}}{regions={1}} { @ignored_mut_borrow(Some (2), &mut@0 (0: i32)), - @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } - [Debug] end_abstraction: 0 - original context: # Ended regions: {} @@ -73165,278 +148301,271 @@ ty: (Types.Adt (Types.Tuple, [], # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (⌊mut@2⌋) ; + Some (ppy) -> &mut@3 (⌊mut@5⌋) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> &mut@6 (&mut@7 (2: i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@0{parents={}}{regions={0}} { &mut@2 (@ignored_mut_borrow(None, 0: i32)), - ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : 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, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }) + @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋) + } + abs@2{parents={}}{regions={2}} { + &mut@5 (@ignored_mut_borrow(None, 1: i32)), + ⌊mut@6, @ignored_mut_loan(7, proj_loans (s@5 : i32))⌋ + } + abs@3{parents={2}}{regions={3}} { + @ignored_mut_borrow(Some (5), &mut@4 (1: i32)), + @ignored_mut_loan(6, ⌊mut@7, proj_loans (s@5 : i32)⌋) } } -[Debug] end_abstraction: 0 -- context after parent abstractions ended: -# Ended regions: {} + +- new context: +# Ended regions: {0, 2} # 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)}⌋ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (s@7 : &r@1 mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} } - abs@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) }) + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } -[Debug] end_abstraction: 0 -- context after loans ended: -# Ended regions: {} +[Debug] end borrow: 1: +- original context: +# Ended regions: {0, 2} # 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)} } + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> &mut@1 (s@7 : &r@1 mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} } - abs@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) }} + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } -[Debug] end_abstraction: 0 -- original context: -# Ended regions: {} +[Debug] give_back: +- bid: 1 +- content: &mut@1 (s@7 : &r@1 mut (i32)) +- context: +# Ended regions: {0, 2} # 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)}⌋ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} } - abs@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) }) + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } -- new context: -# Ended regions: {0} +[Debug] give_back_value: +- bid: 1 +- value: s@7 : &r@1 mut (i32) +- context: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⌊mut@1⌋ ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } -[Debug] expand_symbolic_value: s@3 : &r@1 mut (i32) + +[Debug] expand_symbolic_value: s@7 : &r@1 mut (i32) - original context: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> s@7 : &r@1 mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@7 : &r@1 mut (i32)); child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } - new context: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } [Debug] **About to evaluate statement**: [ - var@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); + var@9 := move var@10 == 2: i32; + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@8 : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } @@ -73444,168 +148573,149 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] **About to evaluate statement**: [ - var@10 := move var@11 == 2: i32 + var@9 := move var@10 == 2: i32 ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@8 : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } -[Debug] -**About to evaluate statement**: [ - var@9 := ¬ move var@10; - 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} +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> s@8 : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } +- op: +move var@10 -[Debug] -**About to evaluate statement**: [ - var@9 := ¬ move var@10 -] - -**Context**: -# Ended regions: {0} +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - 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); + var@8 := ¬ move var@9; + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@9 : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } @@ -73613,82 +148723,113 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] **About to evaluate statement**: [ - assert(¬move var@9) + var@8 := ¬ move var@9 ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@9 : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 2} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> s@9 : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } +- op: +move var@9 [Debug] **About to evaluate statement**: [ - *(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); + assert(¬move var@8); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> s@10 : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } @@ -73696,81 +148837,112 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] **About to evaluate statement**: [ - *(px) := 3: i32 + assert(¬move var@8) ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> s@10 : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 2} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> true ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } +- op: +move var@8 [Debug] **About to evaluate statement**: [ - var@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); + var@13 := copy x; + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } @@ -73778,681 +148950,981 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] **About to evaluate statement**: [ - var@14 := copy x + var@13 := copy x ] **Context**: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } -[Debug] end_abstraction: 1 +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 2} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} + + +- op: +copy x + +[Debug] end borrow: 0: - original context: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } +[Debug] end borrow: 0: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 1) [Debug] end_abstraction: 1 -- context after parent abstractions ended: -# Ended regions: {0} +- original context: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } [Debug] end_abstraction: 1 -- context after loans ended: -# Ended regions: {0} +- context after parent abstractions ended: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } -[Debug] end_abstraction: 1 +[Debug] end borrow: 8: - original context: -# Ended regions: {0} +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { - @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@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) }} + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} } } - -- new context: -# Ended regions: {0, 1} +[Debug] give_back: +- bid: 8 +- content: &mut@8 (s@8 : i32) +- context: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } -[Debug] -**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} +[Debug] give_back_value: +- bid: 8 +- value: s@8 : i32 +- context: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } +[Debug] end borrow: 4: +- original context: +# Ended regions: {0, 2} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - var@13 := move var@14 == 1: i32 -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} -**Context**: -# Ended regions: {0, 1} +[Debug] end borrow: 4: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 3) +[Debug] end_abstraction: 3 +- original context: +# Ended regions: {0, 2} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } +[Debug] end_abstraction: 3 +- context after parent abstractions ended: +# Ended regions: {0, 2} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} +[Debug] end borrow: 7: +- original context: +# Ended regions: {0, 2} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - var@12 := ¬ move var@13; - assert(¬move var@12); - var@17 := copy y; - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} -**Context**: -# Ended regions: {0, 1} +[Debug] end borrow: 7: found outer borrows/abs:(InterpreterBorrowsCore.OuterAbs 3) +[Debug] end borrow: 7: +- original context: +# Ended regions: {0, 2} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } +[Debug] give_back: +- bid: 7 +- content: &mut@7 (2: i32) +- context: +# Ended regions: {0, 2} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=⊥ : &r@3 mut (i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } +} -[Debug] -**About to evaluate statement**: [ - var@12 := ¬ move var@13 -] -**Context**: -# Ended regions: {0, 1} +[Debug] end_abstraction: 3 +- context after loans ended: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=⊥ : &r@3 mut (i32); child: @ended_mut_loan{ given_back=2: i32; child=proj_loans (s@5 : i32) }} + } } +[Debug] give_back_value: +- bid: 4 +- value: s@11 : i32 +- context: +# Ended regions: {0, 2} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=⊥ : &r@3 mut (i32)), + @ended_ignored_mut_loan{ given_back=⊥ : &r@3 mut (i32); child: @ended_mut_loan{ given_back=2: i32; child=proj_loans (s@5 : i32) }} + } +} -[Debug] -**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} +[Debug] end_abstraction: 3 +- original context: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } +- new context: +# Ended regions: {0, 2, 3} +# 1 frame(s) -[Debug] -**About to evaluate statement**: [ - assert(¬move var@12) -] +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: @ended_mut_loan{ given_back=proj_borrows (s@11 : i32 <: i32); child=proj_loans (s@2 : i32) }} + } +} -**Context**: -# Ended regions: {0, 1} +[Debug] end_abstraction: 1 +- context after loans ended: +# Ended regions: {0, 2, 3} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: @ended_mut_loan{ given_back=proj_borrows (s@11 : i32 <: i32); child=proj_loans (s@2 : i32) }} + } } +[Debug] give_back_value: +- bid: 0 +- value: s@12 : i32 +- context: +# Ended regions: {0, 2, 3} +# 1 frame(s) +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@8 : i32 <: i32); child=proj_loans (s@8 : i32) }; child=⊥ : &r@1 mut (i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: @ended_mut_loan{ given_back=proj_borrows (s@11 : i32 <: i32); child=proj_loans (s@2 : i32) }} + } +} -[Debug] -**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} +[Debug] end_abstraction: 1 +- original context: +# Ended regions: {0, 2} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> ⌊mut@0⌋ ; + Some (px) -> &mut@8 (s@8 : i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@8, proj_loans (s@8 : i32)⌋; child=&mut@0 (0: i32)), + @ended_ignored_mut_loan{ given_back=proj_borrows (s@6 : &r@3 mut (i32) <: &r@1 mut (i32)); child: ⌊mut@4, proj_loans (s@2 : i32)⌋} + } + abs@3{parents={}}{regions={3}} { + @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@6 : &r@3 mut (i32)); child=&mut@4 (1: i32)), + @ended_ignored_mut_loan{ given_back=&mut@7 (2: i32); child: ⌊mut@7, proj_loans (s@5 : i32)⌋} + } } +- new context: +# Ended regions: {0, 1, 2, 3} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} [Debug] **About to evaluate statement**: [ - var@17 := copy y + var@12 := move var@13 == 2: i32; + var@11 := ¬ move var@12; + assert(¬move var@11); + return ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {0, 1, 2, 3} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> s@12 : i32 ; } [Debug] **About to evaluate statement**: [ - var@16 := move var@17 == 3: i32; - var@15 := ¬ move var@16; - assert(¬move var@15); - return + var@12 := move var@13 == 2: i32 ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {0, 1, 2, 3} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> s@12 : i32 ; } -[Debug] -**About to evaluate statement**: [ - var@16 := move var@17 == 3: i32 -] +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1, 2, 3} +# 1 frame(s) -**Context**: -# Ended regions: {0, 1} +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> s@12 : i32 ; +} + + +- op: +move var@13 + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1, 2, 3} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } +- op: +2: i32 [Debug] **About to evaluate statement**: [ - var@15 := ¬ move var@16; - assert(¬move var@15); + var@11 := ¬ move var@12; + assert(¬move var@11); return ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {0, 1, 2, 3} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@13 : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - var@15 := ¬ move var@16 + var@11 := ¬ move var@12 ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {0, 1, 2, 3} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@13 : bool ; + Some (var@13) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1, 2, 3} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> s@13 : bool ; + Some (var@13) -> ⊥ : i32 ; } +- op: +move var@12 [Debug] **About to evaluate statement**: [ - assert(¬move var@15); + assert(¬move var@11); return ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {0, 1, 2, 3} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> s@14 : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } [Debug] **About to evaluate statement**: [ - assert(¬move var@15) + assert(¬move var@11) ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {0, 1, 2, 3} +# 1 frame(s) + +# Frame 0: +{ + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> s@14 : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# Ended regions: {0, 1, 2, 3} # 1 frame(s) # Frame 0: { - 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> true ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } +- op: +move var@11 [Debug] **About to evaluate statement**: [ @@ -74460,29 +149932,25 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: -# Ended regions: {0, 1} +# Ended regions: {0, 1, 2, 3} # 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 ; + Some (var@0) -> ⊥ : () ; + Some (x) -> s@12 : i32 ; + Some (px) -> ⊥ : &'_ mut (i32) ; + Some (ppx) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppy) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@5) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (ppz) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@7) -> ⊥ : &'_ mut (&'_ mut (i32)) ; + Some (var@8) -> ⊥ : bool ; + Some (var@9) -> ⊥ : bool ; + Some (var@10) -> ⊥ : i32 ; + Some (var@11) -> ⊥ : bool ; + Some (var@12) -> ⊥ : bool ; + Some (var@13) -> ⊥ : i32 ; } -- cgit v1.2.3