From f4666616e5bbfe56a0e770c541567c605161b131 Mon Sep 17 00:00:00 2001 From: Son Ho Date: Wed, 5 Jan 2022 16:14:40 +0100 Subject: Update the code to deserialize regions_hierarchy information --- tests/trace_reference.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt index 52edcc93..f32f5de8 100644 --- a/tests/trace_reference.txt +++ b/tests/trace_reference.txt @@ -724,7 +724,7 @@ fn test_loop4(max : u32) -> u32 { var@18 : (u32, bool); var@19 : (u32, bool); - i := 0: u32 + i := 1: u32 j := 0: u32 s := 0: u32 loop { -- cgit v1.2.3 From 335de855331a424c35b577907eb504c198990c0b Mon Sep 17 00:00:00 2001 From: Son Ho Date: Thu, 6 Jan 2022 16:30:20 +0100 Subject: Update the trace --- tests/trace_reference.txt | 22536 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 20517 insertions(+), 2019 deletions(-) (limited to 'tests') diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt index f32f5de8..0901e59b 100644 --- a/tests/trace_reference.txt +++ b/tests/trace_reference.txt @@ -31,9 +31,9 @@ fn add_test(x : u32, y : u32) -> u32 { var@4 : u32; var@5 : (u32, bool); - var@3 := copy x - var@4 := copy y - var@0 := copy var@3 + copy var@4 + var@3 := copy x; + var@4 := copy y; + var@0 := copy var@3 + copy var@4; return } @@ -45,9 +45,9 @@ fn subs_test(x : u32, y : u32) -> u32 { var@4 : u32; var@5 : (u32, bool); - var@3 := copy x - var@4 := copy y - var@0 := copy var@3 - copy var@4 + var@3 := copy x; + var@4 := copy y; + var@0 := copy var@3 - copy var@4; return } @@ -59,9 +59,9 @@ fn div_test(x : u32, y : u32) -> u32 { var@4 : u32; var@5 : bool; - var@3 := copy x - var@4 := copy y - var@0 := move var@3 / move var@4 + var@3 := copy x; + var@4 := copy y; + var@0 := move var@3 / move var@4; return } @@ -73,9 +73,9 @@ fn rem_test(x : u32, y : u32) -> u32 { var@4 : u32; var@5 : bool; - var@3 := copy x - var@4 := copy y - var@0 := move var@3 % move var@4 + var@3 := copy x; + var@4 := copy y; + var@0 := move var@3 % move var@4; return } @@ -92,18 +92,18 @@ fn test2() { e1 : test1::EmptyEnum; enum0 : test1::Enum; - 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) + 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 } @@ -115,15 +115,15 @@ fn get_max(x : u32, y : u32) -> u32 { var@4 : u32; var@5 : u32; - var@4 := copy x - var@5 := copy y - var@3 := move var@4 >= move var@5 + 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 } @@ -139,15 +139,15 @@ fn test3() { var@8 : bool; var@9 : u32; - 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) + 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 } @@ -157,10 +157,10 @@ fn test_neg(x : i32) -> i32 { var@2 : i32; var@3 : bool; - var@2 := copy x - var@3 := copy var@2 == -2147483648: i32 - assert(¬move var@3) - var@0 := - move var@2 + var@2 := copy x; + var@3 := copy var@2 == -2147483648: i32; + assert(¬move var@3); + var@0 := - move var@2; return } @@ -169,8 +169,8 @@ fn test_neg1() { x : i32; y : i32; - x := 3: i32 - y := -3: i32 + x := 3: i32; + y := -3: i32; return } @@ -183,14 +183,14 @@ fn refs_test1() { var@5 : bool; var@6 : i32; - 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) + 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 } @@ -215,30 +215,30 @@ fn refs_test2() { var@17 : bool; var@18 : i32; - 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) + 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 } @@ -248,12 +248,12 @@ fn test_list1() { var@2 : std::boxed::Box>; var@3 : test1::List; - 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(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 } @@ -268,17 +268,17 @@ fn test_box1() { var@7 : bool; var@8 : i32; - 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) + 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 } @@ -286,7 +286,7 @@ fn copy_int(x : i32) -> i32 { var@0 : i32; x : i32; - var@0 := copy x + var@0 := copy x; return } @@ -301,15 +301,15 @@ fn test_copy_int() { var@7 : i32; var@8 : i32; - 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) + 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 } @@ -318,7 +318,7 @@ fn is_cons<0,T>(l : &0 (test1::List)) -> bool { l : &'_ (test1::List); var@2 : isize; - var@2 := discriminant(*(l)) + var@2 := discriminant(*(l)); switch (move var@2) { 0: isize => { var@0 := true @@ -329,7 +329,7 @@ fn is_cons<0,T>(l : &0 (test1::List)) -> bool { _ => { panic } - } + }; return } @@ -343,17 +343,17 @@ fn test_is_cons() { var@6 : &'_ (test1::List); var@7 : &'_ (test1::List); - 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) + 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 } @@ -370,22 +370,22 @@ fn split_list(l : test1::List) -> (T, test1::List) { var@9 : (); var@10 : isize; - var@8 := false - var@7 := false - var@7 := true - var@8 := true - var@2 := discriminant(l) + 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) + 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 } _ => { @@ -407,20 +407,20 @@ fn test_split_list() { var@9 : bool; var@10 : i32; - 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) + 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 } @@ -431,13 +431,13 @@ fn get_elem<'a,T>(b : bool, x : &'a mut (T), y : &'a mut (T)) -> &'a mut (T) { y : &'_ mut (T); var@4 : bool; - var@4 := copy b + var@4 := copy b; if (move var@4) { var@0 := &mut *(x) } else { var@0 := move y - } + }; return } @@ -462,27 +462,27 @@ fn get_elem_test() { var@17 : bool; var@18 : i32; - 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) + 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 } @@ -491,8 +491,8 @@ fn id_mut_mut<'a,'b,T>(x : &'a mut (&'b mut (T))) -> &'a mut (&'b mut (T)) { x : &'_ mut (&'_ mut (T)); var@2 : &'_ mut (&'_ mut (T)); - var@2 := &mut *(x) - var@0 := &mut *(var@2) + var@2 := &mut *(x); + var@0 := &mut *(var@2); return } @@ -501,8 +501,8 @@ fn id_mut_pair<'a,T>(x : &'a mut ((&'a mut (T), u32))) -> &'a mut ((&'a mut (T), x : &'_ mut ((&'_ mut (T), u32)); var@2 : &'_ mut ((&'_ mut (T), u32)); - var@2 := &mut *(x) - var@0 := &mut *(var@2) + var@2 := &mut *(x); + var@0 := &mut *(var@2); return } @@ -519,19 +519,19 @@ fn id_mut_pair_test1() { var@9 : &'_ mut (u32); var@10 : &'_ mut (u32); - 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 + 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 } @@ -540,8 +540,8 @@ fn id_mut_mut_pair<'a,T>(x : &'a mut (&'a mut ((&'a mut (T), u32)))) -> &'a mut x : &'_ mut (&'_ mut ((&'_ mut (T), u32))); var@2 : &'_ mut (&'_ mut ((&'_ mut (T), u32))); - var@2 := &mut *(x) - var@0 := &mut *(var@2) + var@2 := &mut *(x); + var@0 := &mut *(var@2); return } @@ -550,8 +550,8 @@ fn id_mut_mut_mut_same<'a,T>(x : &'a mut (&'a mut (&'a mut (u32)))) -> &'a mut ( x : &'_ mut (&'_ mut (&'_ mut (u32))); var@2 : &'_ mut (&'_ mut (&'_ mut (u32))); - var@2 := &mut *(x) - var@0 := &mut *(var@2) + var@2 := &mut *(x); + var@0 := &mut *(var@2); return } @@ -575,23 +575,23 @@ fn test_loop1(max : u32) -> u32 { var@8 : (u32, bool); var@9 : (u32, bool); - i := 0: u32 - s := 0: u32 + i := 0: u32; + s := 0: u32; loop { - var@4 := copy i - var@5 := copy max - var@3 := move var@4 < move var@5 + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; if (move var@3) { - var@6 := copy i - s := copy s + copy var@6 - i := copy i + 1: u32 + var@6 := copy i; + s := copy s + copy var@6; + i := copy i + 1: u32; continue 0 } else { break 0 } - } - s := copy s * 2: u32 + }; + s := copy s * 2: u32; return } @@ -607,22 +607,22 @@ fn test_loop2(max : u32) -> u32 { var@8 : (u32, bool); var@9 : (u32, bool); - i := 0: u32 - s := 0: u32 + i := 0: u32; + s := 0: u32; loop { - var@4 := copy i - var@5 := copy max - var@3 := move var@4 < move var@5 + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; if (move var@3) { - var@6 := copy i + var@6 := copy i; switch (move var@6) { 17: u32 => { break 0 } _ => { - var@7 := copy i - s := copy s + copy var@7 - i := copy i + 1: u32 + var@7 := copy i; + s := copy s + copy var@7; + i := copy i + 1: u32; continue 0 } } @@ -630,7 +630,7 @@ fn test_loop2(max : u32) -> u32 { else { break 0 } - } + }; return } @@ -656,22 +656,22 @@ fn test_loop3(max : u32) -> u32 { var@18 : (u32, bool); var@19 : (u32, bool); - i := 0: u32 - j := 0: u32 - s := 0: u32 + i := 0: u32; + j := 0: u32; + s := 0: u32; loop { - var@5 := copy i - var@6 := copy max - var@4 := move var@5 < move var@6 + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; if (move var@4) { loop { - var@8 := copy j - var@9 := copy max - var@7 := move var@8 < move var@9 + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; if (move var@7) { - var@11 := copy i - var@12 := copy j - var@10 := copy var@11 + copy var@12 + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; switch (move var@10) { 17: u32 => { continue 0 @@ -679,26 +679,26 @@ fn test_loop3(max : u32) -> u32 { _ => { nop } - } - var@14 := copy i - s := copy s + copy var@14 - j := copy j + 1: u32 + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; continue 1 } else { break 0 } - } - j := 0: u32 - var@17 := copy i - s := copy s + copy var@17 - i := copy i + 1: u32 + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; continue 0 } else { break 0 } - } + }; return } @@ -724,22 +724,22 @@ fn test_loop4(max : u32) -> u32 { var@18 : (u32, bool); var@19 : (u32, bool); - i := 1: u32 - j := 0: u32 - s := 0: u32 + i := 1: u32; + j := 0: u32; + s := 0: u32; loop { - var@5 := copy i - var@6 := copy max - var@4 := move var@5 < move var@6 + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; if (move var@4) { loop { - var@8 := copy j - var@9 := copy max - var@7 := move var@8 < move var@9 + var@8 := copy j; + var@9 := copy max; + var@7 := move var@8 < move var@9; if (move var@7) { - var@11 := copy i - var@12 := copy j - var@10 := copy var@11 + copy var@12 + var@11 := copy i; + var@12 := copy j; + var@10 := copy var@11 + copy var@12; switch (move var@10) { 17: u32 => { continue 0 @@ -747,26 +747,26 @@ fn test_loop4(max : u32) -> u32 { _ => { nop } - } - var@14 := copy i - s := copy s + copy var@14 - j := copy j + 1: u32 + }; + var@14 := copy i; + s := copy s + copy var@14; + j := copy j + 1: u32; break 1 } else { break 0 } - } - j := 0: u32 - var@17 := copy i - s := copy s + copy var@17 - i := copy i + 1: u32 + }; + j := 0: u32; + var@17 := copy i; + s := copy s + copy var@17; + i := copy i + 1: u32; continue 0 } else { break 0 } - } + }; return } @@ -788,37 +788,37 @@ fn test_loop5(max : u32) -> u32 { var@14 : (u32, bool); var@15 : (u32, bool); - i := 0: u32 - j := 0: u32 - s := 0: u32 + i := 0: u32; + j := 0: u32; + s := 0: u32; loop { - var@5 := copy i - var@6 := copy max - var@4 := move var@5 < move var@6 + var@5 := copy i; + var@6 := copy max; + var@4 := move var@5 < move var@6; if (move var@4) { loop { - var@8 := copy j - var@9 := copy max - var@7 := move var@8 < move var@9 + 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 + 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 + }; + var@13 := copy i; + s := copy s + copy var@13; + i := copy i + 1: u32; continue 0 } else { break 0 } - } + }; return } @@ -836,30 +836,30 @@ fn test_loop6(max : u32) -> u32 { var@10 : (u32, bool); var@11 : (u32, bool); - i := 0: u32 - s := 0: u32 + i := 0: u32; + s := 0: u32; loop { - var@4 := copy i - var@5 := copy max - var@3 := move var@4 < move var@5 + var@4 := copy i; + var@5 := copy max; + var@3 := move var@4 < move var@5; if (move var@3) { - var@7 := copy i - var@6 := move var@7 > 3: u32 + var@7 := copy i; + var@6 := move var@7 > 3: u32; if (move var@6) { break 0 } else { - var@8 := copy i - s := copy s + copy var@8 - i := copy i + 1: u32 + var@8 := copy i; + s := copy s + copy var@8; + i := copy i + 1: u32; continue 0 } } else { break 0 } - } - s := copy s + 1: u32 + }; + s := copy s + 1: u32; return } @@ -867,19 +867,36 @@ fn test_static(x : &'static (u32)) -> &'static (u32) { var@0 : &'_ (u32); x : &'_ (u32); - var@0 := copy x + var@0 := copy x; return } fn test_char() -> char { var@0 : char; - var@0 := a + var@0 := a; return } [Debug] test_unit_function: 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -897,21 +914,14 @@ fn test_char() -> char { enum0 -> ⊥ : test1::Enum ; } -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 + [Debug] +**About to evaluate statement**: [ + x := 23: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -929,7 +939,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: x := 23: u32 + [Debug] eval_operand: - ctx: @@ -955,6 +965,22 @@ About to evaluate statement: x := 23: u32 23: u32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -972,20 +998,14 @@ About to evaluate statement: x := 23: u32 enum0 -> ⊥ : test1::Enum ; } -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) -return + [Debug] +**About to evaluate statement**: [ + y := 44: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1003,7 +1023,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: y := 44: u32 + [Debug] eval_operand: - ctx: @@ -1029,6 +1049,21 @@ About to evaluate statement: y := 44: u32 44: u32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1046,19 +1081,14 @@ About to evaluate statement: y := 44: u32 enum0 -> ⊥ : test1::Enum ; } -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) -return + [Debug] +**About to evaluate statement**: [ + z := 67: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1076,7 +1106,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: z := 67: u32 + [Debug] eval_operand: - ctx: @@ -1102,6 +1132,20 @@ About to evaluate statement: z := 67: u32 67: u32 [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**: # 1 frame(s) # Frame 0: @@ -1119,18 +1163,14 @@ About to evaluate statement: z := 67: u32 enum0 -> ⊥ : test1::Enum ; } -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 + [Debug] +**About to evaluate statement**: [ + var@5 := copy x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1148,7 +1188,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: var@5 := copy x + [Debug] eval_operand: - ctx: @@ -1176,6 +1216,19 @@ copy x [Debug] Value to copy: 23: u32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1193,17 +1246,14 @@ copy x enum0 -> ⊥ : test1::Enum ; } -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) -return + [Debug] +**About to evaluate statement**: [ + (p).x := move var@5 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1221,7 +1271,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: (p).x := move var@5 + [Debug] eval_operand: - ctx: @@ -1253,6 +1303,18 @@ 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**: # 1 frame(s) # Frame 0: @@ -1270,16 +1332,14 @@ ty: (Types.Adt ((Types.AdtId 0), [], enum0 -> ⊥ : test1::Enum ; } -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 + [Debug] +**About to evaluate statement**: [ + (p).y := 67: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1297,7 +1357,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: (p).y := 67: u32 + [Debug] eval_operand: - ctx: @@ -1323,6 +1383,17 @@ About to evaluate statement: (p).y := 67: u32 67: u32 [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1340,15 +1411,14 @@ About to evaluate statement: (p).y := 67: u32 enum0 -> ⊥ : test1::Enum ; } -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 + [Debug] +**About to evaluate statement**: [ + (s as test1::Sum::Right).0 := true +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1366,7 +1436,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: (s as test1::Sum::Right).0 := true + [Debug] eval_operand: - ctx: @@ -1395,6 +1465,16 @@ true 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1412,14 +1492,14 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) enum0 -> ⊥ : test1::Enum ; } -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 + [Debug] +**About to evaluate statement**: [ + set_discriminant(s, 1) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1437,9 +1517,18 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: set_discriminant(s, 1) + [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1457,13 +1546,14 @@ About to evaluate statement: set_discriminant(s, 1) enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: (o as test1::One::One).0 := 3: u64 -set_discriminant(o, 0) -set_discriminant(e0, 0) -set_discriminant(enum0, 0) -return + [Debug] +**About to evaluate statement**: [ + (o as test1::One::One).0 := 3: u64 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1481,7 +1571,7 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: (o as test1::One::One).0 := 3: u64 + [Debug] eval_operand: - ctx: @@ -1510,6 +1600,14 @@ About to evaluate statement: (o as test1::One::One).0 := 3: u64 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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1527,12 +1625,14 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: set_discriminant(o, 0) -set_discriminant(e0, 0) -set_discriminant(enum0, 0) -return + [Debug] +**About to evaluate statement**: [ + set_discriminant(o, 0) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1550,9 +1650,16 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: set_discriminant(o, 0) + [Debug] +**About to evaluate statement**: [ + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1570,11 +1677,14 @@ About to evaluate statement: set_discriminant(o, 0) enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: set_discriminant(e0, 0) -set_discriminant(enum0, 0) -return + [Debug] +**About to evaluate statement**: [ + set_discriminant(e0, 0) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1592,9 +1702,15 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: set_discriminant(e0, 0) + [Debug] +**About to evaluate statement**: [ + set_discriminant(enum0, 0); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1612,10 +1728,14 @@ About to evaluate statement: set_discriminant(e0, 0) enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: set_discriminant(enum0, 0) -return + [Debug] +**About to evaluate statement**: [ + set_discriminant(enum0, 0) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1633,9 +1753,14 @@ return enum0 -> ⊥ : test1::Enum ; } -About to evaluate statement: set_discriminant(enum0, 0) + [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1653,10 +1778,24 @@ About to evaluate statement: set_discriminant(enum0, 0) enum0 -> test1::Enum::Variant1 ; } -About to evaluate statement: return + [Debug] test_unit_function: 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1673,18 +1812,14 @@ About to evaluate statement: return var@9 -> ⊥ : u32 ; } -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] +**About to evaluate statement**: [ + x := move get_max(4: u32, 3: u32) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -1701,7 +1836,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: x := move get_max(4: u32, 3: u32) + [Debug] eval_operand: - ctx: @@ -1748,6 +1883,20 @@ About to evaluate statement: x := move get_max(4: u32, 3: u32) 3: u32 [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**: # 2 frame(s) # Frame 0: @@ -1774,18 +1923,14 @@ About to evaluate statement: x := move get_max(4: u32, 3: u32) var@5 -> ⊥ : u32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: # 2 frame(s) # Frame 0: @@ -1812,7 +1957,7 @@ return var@5 -> ⊥ : u32 ; } -About to evaluate statement: var@4 := copy x + [Debug] eval_operand: - ctx: @@ -1849,6 +1994,19 @@ copy x [Debug] Value to copy: 4: u32 [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 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -1875,17 +2033,14 @@ copy x var@5 -> ⊥ : u32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@5 := copy y +] + +**Context**: # 2 frame(s) # Frame 0: @@ -1912,7 +2067,7 @@ return var@5 -> ⊥ : u32 ; } -About to evaluate statement: var@5 := copy y + [Debug] eval_operand: - ctx: @@ -1949,6 +2104,18 @@ copy y [Debug] Value to copy: 3: u32 [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 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -1975,16 +2142,14 @@ copy y var@5 -> 3: u32 ; } -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] +**About to evaluate statement**: [ + var@3 := move var@4 >= move var@5 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2011,7 +2176,7 @@ return var@5 -> 3: u32 ; } -About to evaluate statement: var@3 := move var@4 >= move var@5 + [Debug] eval_operand: - ctx: @@ -2082,6 +2247,17 @@ move var@5 [Debug] Value to move: 3: u32 [Debug] +**About to evaluate statement**: [ + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2108,15 +2284,19 @@ move var@5 var@5 -> ⊥ : u32 ; } -About to evaluate statement: if (move var@3) { - var@0 := copy x -} -else { - var@0 := copy y -} -return + [Debug] +**About to evaluate statement**: [ + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2143,12 +2323,7 @@ return var@5 -> ⊥ : u32 ; } -About to evaluate statement: if (move var@3) { - var@0 := copy x -} -else { - var@0 := copy y -} + [Debug] eval_operand: - ctx: @@ -2185,6 +2360,11 @@ move var@3 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + var@0 := copy x +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2211,7 +2391,7 @@ true var@5 -> ⊥ : u32 ; } -About to evaluate statement: var@0 := copy x + [Debug] eval_operand: - ctx: @@ -2248,6 +2428,11 @@ copy x [Debug] Value to copy: 4: u32 [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2274,7 +2459,7 @@ copy x var@5 -> ⊥ : u32 ; } -About to evaluate statement: return + [Debug] ctx_pop_frame: # 2 frame(s) @@ -2371,6 +2556,19 @@ move var@0 [Debug] Value to move: 4: u32 [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**: # 1 frame(s) # Frame 0: @@ -2387,17 +2585,14 @@ move var@0 var@9 -> ⊥ : u32 ; } -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 + [Debug] +**About to evaluate statement**: [ + y := move get_max(10: u32, 11: u32) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -2414,7 +2609,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: y := move get_max(10: u32, 11: u32) + [Debug] eval_operand: - ctx: @@ -2461,6 +2656,20 @@ About to evaluate statement: y := move get_max(10: u32, 11: u32) 11: u32 [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**: # 2 frame(s) # Frame 0: @@ -2487,18 +2696,14 @@ About to evaluate statement: y := move get_max(10: u32, 11: u32) var@5 -> ⊥ : u32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2525,7 +2730,7 @@ return var@5 -> ⊥ : u32 ; } -About to evaluate statement: var@4 := copy x + [Debug] eval_operand: - ctx: @@ -2562,6 +2767,19 @@ copy x [Debug] Value to copy: 10: u32 [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 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2588,17 +2806,14 @@ copy x var@5 -> ⊥ : u32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@5 := copy y +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2625,7 +2840,7 @@ return var@5 -> ⊥ : u32 ; } -About to evaluate statement: var@5 := copy y + [Debug] eval_operand: - ctx: @@ -2662,6 +2877,18 @@ copy y [Debug] Value to copy: 11: u32 [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 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2688,16 +2915,14 @@ copy y var@5 -> 11: u32 ; } -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] +**About to evaluate statement**: [ + var@3 := move var@4 >= move var@5 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2724,7 +2949,7 @@ return var@5 -> 11: u32 ; } -About to evaluate statement: var@3 := move var@4 >= move var@5 + [Debug] eval_operand: - ctx: @@ -2795,6 +3020,17 @@ move var@5 [Debug] Value to move: 11: u32 [Debug] +**About to evaluate statement**: [ + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2821,15 +3057,19 @@ move var@5 var@5 -> ⊥ : u32 ; } -About to evaluate statement: if (move var@3) { - var@0 := copy x -} -else { - var@0 := copy y -} -return + [Debug] +**About to evaluate statement**: [ + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2856,12 +3096,7 @@ return var@5 -> ⊥ : u32 ; } -About to evaluate statement: if (move var@3) { - var@0 := copy x -} -else { - var@0 := copy y -} + [Debug] eval_operand: - ctx: @@ -2898,6 +3133,11 @@ move var@3 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + var@0 := copy y +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2924,7 +3164,7 @@ false var@5 -> ⊥ : u32 ; } -About to evaluate statement: var@0 := copy y + [Debug] eval_operand: - ctx: @@ -2961,6 +3201,11 @@ copy y [Debug] Value to copy: 11: u32 [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -2987,7 +3232,7 @@ copy y var@5 -> ⊥ : u32 ; } -About to evaluate statement: return + [Debug] ctx_pop_frame: # 2 frame(s) @@ -3084,6 +3329,18 @@ move var@0 [Debug] Value to move: 11: u32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3100,16 +3357,14 @@ move var@0 var@9 -> ⊥ : u32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3126,7 +3381,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: var@4 := copy x + [Debug] eval_operand: - ctx: @@ -3153,6 +3408,17 @@ copy x [Debug] Value to copy: 4: u32 [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**: # 1 frame(s) # Frame 0: @@ -3169,15 +3435,14 @@ copy x var@9 -> ⊥ : u32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@5 := copy y +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3194,7 +3459,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: var@5 := copy y + [Debug] eval_operand: - ctx: @@ -3221,6 +3486,16 @@ copy y [Debug] Value to copy: 11: u32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3237,14 +3512,14 @@ copy y var@9 -> ⊥ : u32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + z := copy var@4 + copy var@5 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3261,7 +3536,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: z := copy var@4 + copy var@5 + [Debug] eval_operand: - ctx: @@ -3312,6 +3587,15 @@ copy var@5 [Debug] Value to copy: 11: u32 [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**: # 1 frame(s) # Frame 0: @@ -3328,13 +3612,14 @@ copy var@5 var@9 -> ⊥ : u32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@9 := copy z +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3351,7 +3636,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: var@9 := copy z + [Debug] eval_operand: - ctx: @@ -3378,6 +3663,14 @@ copy z [Debug] Value to copy: 15: u32 [Debug] +**About to evaluate statement**: [ + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3394,12 +3687,14 @@ copy z var@9 -> 15: u32 ; } -About to evaluate statement: var@8 := move var@9 == 15: u32 -var@7 := ¬ move var@8 -assert(¬move var@7) -return + [Debug] +**About to evaluate statement**: [ + var@8 := move var@9 == 15: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3416,7 +3711,7 @@ return var@9 -> 15: u32 ; } -About to evaluate statement: var@8 := move var@9 == 15: u32 + [Debug] eval_operand: - ctx: @@ -3465,6 +3760,13 @@ move var@9 15: u32 [Debug] +**About to evaluate statement**: [ + var@7 := ¬ move var@8; + assert(¬move var@7); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3481,11 +3783,14 @@ move var@9 var@9 -> ⊥ : u32 ; } -About to evaluate statement: var@7 := ¬ move var@8 -assert(¬move var@7) -return + [Debug] +**About to evaluate statement**: [ + var@7 := ¬ move var@8 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3502,7 +3807,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: var@7 := ¬ move var@8 + [Debug] eval_operand: - ctx: @@ -3529,6 +3834,12 @@ move var@8 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@7); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3545,10 +3856,14 @@ true var@9 -> ⊥ : u32 ; } -About to evaluate statement: assert(¬move var@7) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@7) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3565,7 +3880,7 @@ return var@9 -> ⊥ : u32 ; } -About to evaluate statement: assert(¬move var@7) + [Debug] eval_operand: - ctx: @@ -3592,6 +3907,11 @@ move var@7 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3608,10 +3928,17 @@ false var@9 -> ⊥ : u32 ; } -About to evaluate statement: return + [Debug] test_unit_function: test_neg1 [Debug] +**About to evaluate statement**: [ + x := 3: i32; + y := -3: i32; + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3621,11 +3948,14 @@ About to evaluate statement: return y -> ⊥ : i32 ; } -About to evaluate statement: x := 3: i32 -y := -3: i32 -return + [Debug] +**About to evaluate statement**: [ + x := 3: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3635,7 +3965,7 @@ return y -> ⊥ : i32 ; } -About to evaluate statement: x := 3: i32 + [Debug] eval_operand: - ctx: @@ -3653,6 +3983,12 @@ About to evaluate statement: x := 3: i32 3: i32 [Debug] +**About to evaluate statement**: [ + y := -3: i32; + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3662,10 +3998,14 @@ About to evaluate statement: x := 3: i32 y -> ⊥ : i32 ; } -About to evaluate statement: y := -3: i32 -return + [Debug] +**About to evaluate statement**: [ + y := -3: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3675,7 +4015,7 @@ return y -> ⊥ : i32 ; } -About to evaluate statement: y := -3: i32 + [Debug] eval_operand: - ctx: @@ -3693,6 +4033,11 @@ About to evaluate statement: y := -3: i32 -3: i32 [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3702,10 +4047,23 @@ About to evaluate statement: y := -3: i32 y -> -3: i32 ; } -About to evaluate statement: return + [Debug] test_unit_function: 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3719,17 +4077,14 @@ About to evaluate statement: return var@6 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3743,7 +4098,7 @@ return var@6 -> ⊥ : i32 ; } -About to evaluate statement: x := 0: i32 + [Debug] eval_operand: - ctx: @@ -3765,6 +4120,18 @@ About to evaluate statement: x := 0: i32 0: i32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3778,16 +4145,14 @@ About to evaluate statement: x := 0: i32 var@6 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3801,9 +4166,20 @@ return var@6 -> ⊥ : i32 ; } -About to evaluate statement: px := &mut x + [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**: # 1 frame(s) # Frame 0: @@ -3817,15 +4193,14 @@ About to evaluate statement: px := &mut x var@6 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3839,9 +4214,19 @@ return var@6 -> ⊥ : i32 ; } -About to evaluate statement: ppx := &mut px + [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3855,14 +4240,14 @@ About to evaluate statement: ppx := &mut px var@6 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + *(*(ppx)) := 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3876,7 +4261,7 @@ return var@6 -> ⊥ : i32 ; } -About to evaluate statement: *(*(ppx)) := 1: i32 + [Debug] eval_operand: - ctx: @@ -3898,6 +4283,15 @@ About to evaluate statement: *(*(ppx)) := 1: i32 1: i32 [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3911,13 +4305,14 @@ About to evaluate statement: *(*(ppx)) := 1: i32 var@6 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@6 := copy x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3931,7 +4326,7 @@ return var@6 -> ⊥ : i32 ; } -About to evaluate statement: var@6 := copy x + [Debug] eval_operand: - ctx: @@ -3955,6 +4350,14 @@ copy x [Debug] Value to copy: 1: i32 [Debug] +**About to evaluate statement**: [ + var@5 := move var@6 == 1: i32; + var@4 := ¬ move var@5; + assert(¬move var@4); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3968,12 +4371,14 @@ copy x var@6 -> 1: i32 ; } -About to evaluate statement: var@5 := move var@6 == 1: i32 -var@4 := ¬ move var@5 -assert(¬move var@4) -return + [Debug] +**About to evaluate statement**: [ + var@5 := move var@6 == 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -3987,7 +4392,7 @@ return var@6 -> 1: i32 ; } -About to evaluate statement: var@5 := move var@6 == 1: i32 + [Debug] eval_operand: - ctx: @@ -4030,6 +4435,13 @@ move var@6 1: i32 [Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5; + assert(¬move var@4); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4043,11 +4455,14 @@ move var@6 var@6 -> ⊥ : i32 ; } -About to evaluate statement: var@4 := ¬ move var@5 -assert(¬move var@4) -return + [Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4061,7 +4476,7 @@ return var@6 -> ⊥ : i32 ; } -About to evaluate statement: var@4 := ¬ move var@5 + [Debug] eval_operand: - ctx: @@ -4085,6 +4500,12 @@ move var@5 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@4); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4098,10 +4519,14 @@ true var@6 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@4) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@4) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4115,7 +4540,7 @@ return var@6 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@4) + [Debug] eval_operand: - ctx: @@ -4139,6 +4564,11 @@ move var@4 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4152,10 +4582,39 @@ false var@6 -> ⊥ : i32 ; } -About to evaluate statement: return + [Debug] test_unit_function: refs_test2 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4181,33 +4640,14 @@ About to evaluate statement: return var@18 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4233,7 +4673,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: x := 0: i32 + [Debug] eval_operand: - ctx: @@ -4267,6 +4707,34 @@ About to evaluate statement: x := 0: i32 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**: # 1 frame(s) # Frame 0: @@ -4292,32 +4760,14 @@ About to evaluate statement: x := 0: i32 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + y := 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4343,7 +4793,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: y := 1: i32 + [Debug] eval_operand: - ctx: @@ -4377,6 +4827,33 @@ About to evaluate statement: y := 1: i32 1: i32 [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**: # 1 frame(s) # Frame 0: @@ -4402,31 +4879,14 @@ About to evaluate statement: y := 1: i32 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4452,9 +4912,35 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: px := &mut x + [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4480,30 +4966,14 @@ About to evaluate statement: px := &mut x var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + py := &mut y +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4529,9 +4999,34 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: py := &mut y + [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**: # 1 frame(s) # Frame 0: @@ -4557,29 +5052,14 @@ About to evaluate statement: py := &mut y var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4605,9 +5085,33 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: ppx := &mut px + [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4633,28 +5137,14 @@ About to evaluate statement: ppx := &mut px var@18 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@6 := &mut *(py) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4680,9 +5170,32 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@6 := &mut *(py) + [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**: # 1 frame(s) # Frame 0: @@ -4708,27 +5221,14 @@ About to evaluate statement: var@6 := &mut *(py) var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + *(ppx) := move var@6 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4754,7 +5254,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: *(ppx) := move var@6 + [Debug] eval_operand: - ctx: @@ -4790,6 +5290,28 @@ move var@6 [Debug] Value to move: &mut@3 (1: i32) [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4815,26 +5337,14 @@ move var@6 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + *(*(ppx)) := 2: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4860,7 +5370,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: *(*(ppx)) := 2: i32 + [Debug] eval_operand: - ctx: @@ -4894,6 +5404,27 @@ About to evaluate statement: *(*(ppx)) := 2: i32 2: i32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4919,25 +5450,14 @@ About to evaluate statement: *(*(ppx)) := 2: i32 var@18 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@9 := copy *(px) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -4963,7 +5483,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@9 := copy *(px) + [Debug] eval_operand: - ctx: @@ -4999,6 +5519,26 @@ copy *(px) [Debug] Value to copy: 2: i32 [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**: # 1 frame(s) # Frame 0: @@ -5024,24 +5564,14 @@ copy *(px) var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@8 := move var@9 == 2: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5067,7 +5597,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@8 := move var@9 == 2: i32 + [Debug] eval_operand: - ctx: @@ -5134,6 +5664,25 @@ move var@9 2: i32 [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5159,23 +5708,14 @@ move var@9 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@7 := ¬ move var@8 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5201,7 +5741,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@7 := ¬ move var@8 + [Debug] eval_operand: - ctx: @@ -5237,6 +5777,24 @@ move var@8 [Debug] Value to move: true [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5262,22 +5820,14 @@ true var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + assert(¬move var@7) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5303,7 +5853,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@7) + [Debug] eval_operand: - ctx: @@ -5339,6 +5889,23 @@ move var@7 [Debug] Value to move: false [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5364,21 +5931,14 @@ false var@18 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@12 := copy x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5404,7 +5964,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@12 := copy x + [Debug] eval_operand: - ctx: @@ -5440,6 +6000,22 @@ copy x [Debug] Value to copy: 0: i32 [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**: # 1 frame(s) # Frame 0: @@ -5465,20 +6041,14 @@ copy x var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@11 := move var@12 == 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5504,7 +6074,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@11 := move var@12 == 0: i32 + [Debug] eval_operand: - ctx: @@ -5571,6 +6141,21 @@ move var@12 0: i32 [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5596,19 +6181,14 @@ move var@12 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5634,7 +6214,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@10 := ¬ move var@11 + [Debug] eval_operand: - ctx: @@ -5670,6 +6250,20 @@ move var@11 [Debug] Value to move: true [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5695,18 +6289,14 @@ true var@18 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@10) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5732,7 +6322,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@10) + [Debug] eval_operand: - ctx: @@ -5768,6 +6358,19 @@ move var@10 [Debug] Value to move: false [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**: # 1 frame(s) # Frame 0: @@ -5793,17 +6396,14 @@ false var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@15 := copy *(py) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5829,7 +6429,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@15 := copy *(py) + [Debug] eval_operand: - ctx: @@ -5865,6 +6465,18 @@ copy *(py) [Debug] Value to copy: 2: i32 [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5890,16 +6502,14 @@ copy *(py) var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@14 := move var@15 == 2: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -5925,7 +6535,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@14 := move var@15 == 2: i32 + [Debug] eval_operand: - ctx: @@ -5992,6 +6602,17 @@ move var@15 2: i32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6017,15 +6638,14 @@ move var@15 var@18 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@13 := ¬ move var@14 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6051,7 +6671,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@13 := ¬ move var@14 + [Debug] eval_operand: - ctx: @@ -6087,6 +6707,16 @@ move var@14 [Debug] Value to move: true [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**: # 1 frame(s) # Frame 0: @@ -6112,14 +6742,14 @@ true var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + assert(¬move var@13) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6145,7 +6775,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@13) + [Debug] eval_operand: - ctx: @@ -6181,6 +6811,15 @@ move var@13 [Debug] Value to move: false [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6206,13 +6845,14 @@ false var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@18 := copy y +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6238,7 +6878,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@18 := copy y + [Debug] eval_operand: - ctx: @@ -6274,6 +6914,14 @@ copy y [Debug] Value to copy: 2: i32 [Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6299,12 +6947,14 @@ copy y var@18 -> 2: i32 ; } -About to evaluate statement: var@17 := move var@18 == 2: i32 -var@16 := ¬ move var@17 -assert(¬move var@16) -return + [Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 2: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6330,7 +6980,7 @@ return var@18 -> 2: i32 ; } -About to evaluate statement: var@17 := move var@18 == 2: i32 + [Debug] eval_operand: - ctx: @@ -6397,6 +7047,13 @@ move var@18 2: i32 [Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6422,11 +7079,14 @@ move var@18 var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@16 := ¬ move var@17 -assert(¬move var@16) -return + [Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6452,7 +7112,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@16 := ¬ move var@17 + [Debug] eval_operand: - ctx: @@ -6488,6 +7148,12 @@ move var@17 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@16); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6513,10 +7179,14 @@ true var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@16) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@16) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6542,7 +7212,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@16) + [Debug] eval_operand: - ctx: @@ -6578,6 +7248,11 @@ move var@16 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6603,10 +7278,21 @@ false var@18 -> ⊥ : i32 ; } -About to evaluate statement: return + [Debug] test_unit_function: 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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6617,15 +7303,14 @@ About to evaluate statement: return var@3 -> ⊥ : test1::List ; } -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) -return + [Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6636,9 +7321,19 @@ return var@3 -> ⊥ : test1::List ; } -About to evaluate statement: set_discriminant(var@3, 1) + [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6649,14 +7344,14 @@ About to evaluate statement: set_discriminant(var@3, 1) var@3 -> test1::List::Nil ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6667,7 +7362,7 @@ return var@3 -> test1::List::Nil ; } -About to evaluate statement: var@2 := move alloc::boxed::Box>::new(move var@3) + [Debug] eval_non_local_function_call: - fid:CfimAst.BoxNew @@ -6777,6 +7472,15 @@ move @return [Debug] Value to move: @Box(test1::List::Nil) [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6787,13 +7491,14 @@ move @return var@3 -> ⊥ : test1::List ; } -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 + [Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6804,7 +7509,7 @@ return var@3 -> ⊥ : test1::List ; } -About to evaluate statement: (l as test1::List::Cons).0 := 0: i32 + [Debug] eval_operand: - ctx: @@ -6826,6 +7531,14 @@ About to evaluate statement: (l as test1::List::Cons).0 := 0: i32 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6836,12 +7549,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) var@3 -> ⊥ : test1::List ; } -About to evaluate statement: (l as test1::List::Cons).1 := move var@2 -set_discriminant(l, 0) -drop(l) -return + [Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6852,7 +7567,7 @@ return var@3 -> ⊥ : test1::List ; } -About to evaluate statement: (l as test1::List::Cons).1 := move var@2 + [Debug] eval_operand: - ctx: @@ -6873,6 +7588,13 @@ move var@2 [Debug] Value to move: @Box(test1::List::Nil) [Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0); + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6883,11 +7605,14 @@ move var@2 var@3 -> ⊥ : test1::List ; } -About to evaluate statement: set_discriminant(l, 0) -drop(l) -return + [Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6898,9 +7623,15 @@ return var@3 -> ⊥ : test1::List ; } -About to evaluate statement: set_discriminant(l, 0) + [Debug] +**About to evaluate statement**: [ + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6911,10 +7642,14 @@ About to evaluate statement: set_discriminant(l, 0) var@3 -> ⊥ : test1::List ; } -About to evaluate statement: drop(l) -return + [Debug] +**About to evaluate statement**: [ + drop(l) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6925,10 +7660,15 @@ return var@3 -> ⊥ : test1::List ; } -About to evaluate statement: drop(l) + [Debug] drop_value: place: l [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6939,10 +7679,26 @@ About to evaluate statement: drop(l) var@3 -> ⊥ : test1::List ; } -About to evaluate statement: return + [Debug] test_unit_function: 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**: # 1 frame(s) # Frame 0: @@ -6958,20 +7714,14 @@ About to evaluate statement: return var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + b := move alloc::boxed::Box::new(0: i32) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -6987,7 +7737,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: b := move alloc::boxed::Box::new(0: i32) + [Debug] eval_non_local_function_call: - fid:CfimAst.BoxNew @@ -7120,6 +7870,21 @@ move @return [Debug] Value to move: @Box(0: i32) [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7135,19 +7900,14 @@ move @return var@8 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@3 := &two-phase b +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7163,9 +7923,23 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@3 := &two-phase b + [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**: # 1 frame(s) # Frame 0: @@ -7181,18 +7955,14 @@ About to evaluate statement: var@3 := &two-phase b var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + x := move core::ops::deref::DerefMut::deref_mut(move var@3) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7208,7 +7978,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: x := move core::ops::deref::DerefMut::deref_mut(move var@3) + [Debug] eval_non_local_function_call: - fid:CfimAst.BoxDerefMut @@ -7327,6 +8097,19 @@ move @return [Debug] Value to move: &mut@1 (0: 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**: # 1 frame(s) # Frame 0: @@ -7342,17 +8125,14 @@ move @return var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + *(x) := 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7368,7 +8148,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: *(x) := 1: i32 + [Debug] eval_operand: - ctx: @@ -7392,6 +8172,18 @@ About to evaluate statement: *(x) := 1: i32 1: i32 [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7407,16 +8199,14 @@ About to evaluate statement: *(x) := 1: i32 var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@5 := &b +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7432,9 +8222,20 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@5 := &b + [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**: # 1 frame(s) # Frame 0: @@ -7450,15 +8251,14 @@ About to evaluate statement: var@5 := &b var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + x := move core::ops::deref::Deref>::deref(move var@5) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7474,7 +8274,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: x := move core::ops::deref::Deref>::deref(move var@5) + [Debug] eval_non_local_function_call: - fid:CfimAst.BoxDeref @@ -7580,6 +8380,16 @@ move @return [Debug] Value to move: ⌊shared@3⌋ [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7595,14 +8405,14 @@ move @return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@8 := copy *(x) -var@7 := move var@8 == 1: i32 -var@6 := ¬ move var@7 -assert(¬move var@6) -drop(b) -return + [Debug] +**About to evaluate statement**: [ + var@8 := copy *(x) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7618,7 +8428,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@8 := copy *(x) + [Debug] eval_operand: - ctx: @@ -7644,6 +8454,15 @@ copy *(x) [Debug] Value to copy: 1: i32 [Debug] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7659,13 +8478,14 @@ copy *(x) var@8 -> 1: i32 ; } -About to evaluate statement: var@7 := move var@8 == 1: i32 -var@6 := ¬ move var@7 -assert(¬move var@6) -drop(b) -return + [Debug] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7681,7 +8501,7 @@ return var@8 -> 1: i32 ; } -About to evaluate statement: var@7 := move var@8 == 1: i32 + [Debug] eval_operand: - ctx: @@ -7728,6 +8548,14 @@ move var@8 1: i32 [Debug] +**About to evaluate statement**: [ + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7743,12 +8571,14 @@ move var@8 var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@6 := ¬ move var@7 -assert(¬move var@6) -drop(b) -return + [Debug] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7764,7 +8594,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@6 := ¬ move var@7 + [Debug] eval_operand: - ctx: @@ -7790,6 +8620,13 @@ move var@7 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@6); + drop(b); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7805,11 +8642,14 @@ true var@8 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@6) -drop(b) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@6) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7825,7 +8665,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@6) + [Debug] eval_operand: - ctx: @@ -7851,6 +8691,12 @@ move var@6 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + drop(b); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7866,10 +8712,14 @@ false var@8 -> ⊥ : i32 ; } -About to evaluate statement: drop(b) -return + [Debug] +**About to evaluate statement**: [ + drop(b) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7885,10 +8735,15 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: drop(b) + [Debug] drop_value: place: b [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7904,10 +8759,24 @@ About to evaluate statement: drop(b) var@8 -> ⊥ : i32 ; } -About to evaluate statement: return + [Debug] test_unit_function: 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7923,18 +8792,14 @@ About to evaluate statement: return var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -7950,7 +8815,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: x := 0: i32 + [Debug] eval_operand: - ctx: @@ -7974,6 +8839,19 @@ About to evaluate statement: x := 0: i32 0: i32 [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**: # 1 frame(s) # Frame 0: @@ -7989,17 +8867,14 @@ About to evaluate statement: x := 0: i32 var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + px := &x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8015,9 +8890,21 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: px := &x + [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8033,16 +8920,14 @@ About to evaluate statement: px := &x var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8058,7 +8943,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@4 := copy x + [Debug] eval_operand: - ctx: @@ -8084,6 +8969,17 @@ copy x [Debug] Value to copy: @shared_loan({0}, 0: i32) [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8099,15 +8995,14 @@ copy x var@8 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + y := move copy_int(move var@4) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8123,7 +9018,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: y := move copy_int(move var@4) + [Debug] eval_operand: - ctx: @@ -8149,6 +9044,12 @@ move var@4 [Debug] Value to move: 0: i32 [Debug] +**About to evaluate statement**: [ + var@0 := copy x; + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -8170,10 +9071,14 @@ move var@4 x -> 0: i32 ; } -About to evaluate statement: var@0 := copy x -return + [Debug] +**About to evaluate statement**: [ + var@0 := copy x +] + +**Context**: # 2 frame(s) # Frame 0: @@ -8195,7 +9100,7 @@ return x -> 0: i32 ; } -About to evaluate statement: var@0 := copy x + [Debug] eval_operand: - ctx: @@ -8227,6 +9132,11 @@ copy x [Debug] Value to copy: 0: i32 [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -8248,7 +9158,7 @@ copy x x -> 0: i32 ; } -About to evaluate statement: return + [Debug] ctx_pop_frame: # 2 frame(s) @@ -8326,6 +9236,16 @@ move var@0 [Debug] Value to move: 0: i32 [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**: # 1 frame(s) # Frame 0: @@ -8341,14 +9261,14 @@ move var@0 var@8 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@7 := copy *(px) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8364,7 +9284,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@7 := copy *(px) + [Debug] eval_operand: - ctx: @@ -8390,6 +9310,15 @@ copy *(px) [Debug] Value to copy: 0: i32 [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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8405,13 +9334,14 @@ copy *(px) var@8 -> ⊥ : i32 ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@8 := copy y +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8427,7 +9357,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@8 := copy y + [Debug] eval_operand: - ctx: @@ -8453,6 +9383,14 @@ copy y [Debug] Value to copy: 0: i32 [Debug] +**About to evaluate statement**: [ + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8468,12 +9406,14 @@ copy y var@8 -> 0: i32 ; } -About to evaluate statement: var@6 := move var@7 == move var@8 -var@5 := ¬ move var@6 -assert(¬move var@5) -return + [Debug] +**About to evaluate statement**: [ + var@6 := move var@7 == move var@8 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8489,7 +9429,7 @@ return var@8 -> 0: i32 ; } -About to evaluate statement: var@6 := move var@7 == move var@8 + [Debug] eval_operand: - ctx: @@ -8538,6 +9478,13 @@ move var@8 [Debug] Value to move: 0: i32 [Debug] +**About to evaluate statement**: [ + var@5 := ¬ move var@6; + assert(¬move var@5); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8553,11 +9500,14 @@ move var@8 var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@5 := ¬ move var@6 -assert(¬move var@5) -return + [Debug] +**About to evaluate statement**: [ + var@5 := ¬ move var@6 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8573,7 +9523,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: var@5 := ¬ move var@6 + [Debug] eval_operand: - ctx: @@ -8599,6 +9549,12 @@ move var@6 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@5); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8614,10 +9570,14 @@ true var@8 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@5) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@5) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8633,7 +9593,7 @@ return var@8 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@5) + [Debug] eval_operand: - ctx: @@ -8659,6 +9619,11 @@ move var@5 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8674,10 +9639,26 @@ false var@8 -> ⊥ : i32 ; } -About to evaluate statement: return + [Debug] test_unit_function: 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8692,20 +9673,14 @@ About to evaluate statement: return var@7 -> ⊥ : &'_ (test1::List) ; } -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 + [Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8720,9 +9695,24 @@ return var@7 -> ⊥ : &'_ (test1::List) ; } -About to evaluate statement: set_discriminant(var@3, 1) + [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); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8737,19 +9727,14 @@ About to evaluate statement: set_discriminant(var@3, 1) var@7 -> ⊥ : &'_ (test1::List) ; } -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) -var@4 := ¬ move var@5 -assert(¬move var@4) -drop(l) -return + [Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8764,7 +9749,7 @@ return var@7 -> ⊥ : &'_ (test1::List) ; } -About to evaluate statement: var@2 := move alloc::boxed::Box>::new(move var@3) + [Debug] eval_non_local_function_call: - fid:CfimAst.BoxNew @@ -8894,6 +9879,20 @@ move @return [Debug] Value to move: @Box(test1::List::Nil) [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); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8908,18 +9907,14 @@ move @return var@7 -> ⊥ : &'_ (test1::List) ; } -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) -var@4 := ¬ move var@5 -assert(¬move var@4) -drop(l) -return + [Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8934,7 +9929,7 @@ return var@7 -> ⊥ : &'_ (test1::List) ; } -About to evaluate statement: (l as test1::List::Cons).0 := 0: i32 + [Debug] eval_operand: - ctx: @@ -8960,6 +9955,19 @@ About to evaluate statement: (l as test1::List::Cons).0 := 0: i32 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8974,17 +9982,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) var@7 -> ⊥ : &'_ (test1::List) ; } -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 + [Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -8999,7 +10004,7 @@ return var@7 -> ⊥ : &'_ (test1::List) ; } -About to evaluate statement: (l as test1::List::Cons).1 := move var@2 + [Debug] eval_operand: - ctx: @@ -9024,6 +10029,18 @@ move var@2 [Debug] Value to move: @Box(test1::List::Nil) [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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9038,16 +10055,14 @@ move var@2 var@7 -> ⊥ : &'_ (test1::List) ; } -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 + [Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9062,9 +10077,20 @@ return var@7 -> ⊥ : &'_ (test1::List) ; } -About to evaluate statement: set_discriminant(l, 0) + [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**: # 1 frame(s) # Frame 0: @@ -9079,15 +10105,14 @@ About to evaluate statement: set_discriminant(l, 0) var@7 -> ⊥ : &'_ (test1::List) ; } -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 + [Debug] +**About to evaluate statement**: [ + var@7 := &l +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9102,9 +10127,19 @@ return var@7 -> ⊥ : &'_ (test1::List) ; } -About to evaluate statement: var@7 := &l + [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**: # 1 frame(s) # Frame 0: @@ -9119,14 +10154,14 @@ About to evaluate statement: var@7 := &l var@7 -> ⌊shared@0⌋ ; } -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 + [Debug] +**About to evaluate statement**: [ + var@6 := copy var@7 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9141,7 +10176,7 @@ return var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: var@6 := copy var@7 + [Debug] eval_operand: - ctx: @@ -9166,6 +10201,15 @@ copy var@7 [Debug] Value to copy: ⌊shared@0⌋ [Debug] +**About to evaluate statement**: [ + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9180,13 +10224,14 @@ copy var@7 var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: var@5 := move is_cons(move var@6) -var@4 := ¬ move var@5 -assert(¬move var@4) -drop(l) -return + [Debug] +**About to evaluate statement**: [ + var@5 := move is_cons(move var@6) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9201,7 +10246,7 @@ return var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: var@5 := move is_cons(move var@6) + [Debug] eval_operand: - ctx: @@ -9226,6 +10271,23 @@ move var@6 [Debug] Value to move: ⌊shared@1⌋ [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**: # 2 frame(s) # Frame 0: @@ -9247,21 +10309,14 @@ move var@6 var@2 -> ⊥ : isize ; } -About to evaluate statement: var@2 := discriminant(*(l)) -switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } -} -return + [Debug] +**About to evaluate statement**: [ + var@2 := discriminant(*(l)) +] + +**Context**: # 2 frame(s) # Frame 0: @@ -9283,9 +10338,25 @@ return var@2 -> ⊥ : isize ; } -About to evaluate statement: var@2 := discriminant(*(l)) + [Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + }; + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -9307,20 +10378,24 @@ About to evaluate statement: var@2 := discriminant(*(l)) var@2 -> 0: isize ; } -About to evaluate statement: switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } -} -return + [Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -9342,17 +10417,7 @@ return var@2 -> 0: isize ; } -About to evaluate statement: switch (move var@2) { - 0: isize => { - var@0 := true - } - 1: isize => { - var@0 := false - } - _ => { - panic - } -} + [Debug] eval_operand: - ctx: @@ -9384,6 +10449,11 @@ move var@2 [Debug] Value to move: 0: isize [Debug] +**About to evaluate statement**: [ + var@0 := true +] + +**Context**: # 2 frame(s) # Frame 0: @@ -9405,7 +10475,7 @@ move var@2 var@2 -> ⊥ : isize ; } -About to evaluate statement: var@0 := true + [Debug] eval_operand: - ctx: @@ -9435,6 +10505,11 @@ About to evaluate statement: var@0 := true true [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -9456,7 +10531,7 @@ true var@2 -> ⊥ : isize ; } -About to evaluate statement: return + [Debug] ctx_pop_frame: # 2 frame(s) @@ -9535,6 +10610,14 @@ move var@0 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9549,12 +10632,14 @@ true var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: var@4 := ¬ move var@5 -assert(¬move var@4) -drop(l) -return + [Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9569,7 +10654,7 @@ return var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: var@4 := ¬ move var@5 + [Debug] eval_operand: - ctx: @@ -9594,6 +10679,13 @@ move var@5 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@4); + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9608,11 +10700,14 @@ true var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: assert(¬move var@4) -drop(l) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@4) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9627,7 +10722,7 @@ return var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: assert(¬move var@4) + [Debug] eval_operand: - ctx: @@ -9652,6 +10747,12 @@ move var@4 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + drop(l); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9666,10 +10767,14 @@ false var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: drop(l) -return + [Debug] +**About to evaluate statement**: [ + drop(l) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9684,10 +10789,15 @@ return var@7 -> ⌊shared@0⌋ ; } -About to evaluate statement: drop(l) + [Debug] drop_value: place: l [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9702,10 +10812,29 @@ About to evaluate statement: drop(l) var@7 -> ⊥ : &'_ (test1::List) ; } -About to evaluate statement: return + [Debug] test_unit_function: 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**: # 1 frame(s) # Frame 0: @@ -9723,23 +10852,14 @@ About to evaluate statement: return var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9757,9 +10877,27 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: set_discriminant(var@3, 1) + [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**: # 1 frame(s) # Frame 0: @@ -9777,22 +10915,14 @@ About to evaluate statement: set_discriminant(var@3, 1) var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -9810,7 +10940,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: var@2 := move alloc::boxed::Box>::new(move var@3) + [Debug] eval_non_local_function_call: - fid:CfimAst.BoxNew @@ -9955,6 +11085,23 @@ move @return [Debug] Value to move: @Box(test1::List::Nil) [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**: # 1 frame(s) # Frame 0: @@ -9972,21 +11119,14 @@ move @return var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -10004,7 +11144,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: (l as test1::List::Cons).0 := 0: i32 + [Debug] eval_operand: - ctx: @@ -10033,6 +11173,22 @@ About to evaluate statement: (l as test1::List::Cons).0 := 0: i32 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**: # 1 frame(s) # Frame 0: @@ -10050,20 +11206,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -10081,7 +11231,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: (l as test1::List::Cons).1 := move var@2 + [Debug] eval_operand: - ctx: @@ -10109,6 +11259,21 @@ move var@2 [Debug] Value to move: @Box(test1::List::Nil) [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**: # 1 frame(s) # Frame 0: @@ -10126,19 +11291,14 @@ move var@2 var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -10156,9 +11316,23 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: set_discriminant(l, 0) + [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**: # 1 frame(s) # Frame 0: @@ -10176,18 +11350,14 @@ About to evaluate statement: set_discriminant(l, 0) var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@7 := move l +] + +**Context**: # 1 frame(s) # Frame 0: @@ -10205,7 +11375,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: var@7 := move l + [Debug] eval_operand: - ctx: @@ -10233,6 +11403,19 @@ move l [Debug] Value to move: test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } [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**: # 1 frame(s) # Frame 0: @@ -10250,17 +11433,14 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@6 := move split_list(move var@7) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -10278,7 +11458,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: var@6 := move split_list(move var@7) + [Debug] eval_operand: - ctx: @@ -10306,9 +11486,35 @@ move var@7 [Debug] Value to move: test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } [Debug] -# 2 frame(s) - -# Frame 0: +**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 + } + } +] + +**Context**: +# 2 frame(s) + +# Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; @@ -10338,30 +11544,14 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } var@10 -> ⊥ : isize ; } -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 - } -} + [Debug] +**About to evaluate statement**: [ + var@8 := false +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10394,7 +11584,7 @@ switch (move var@2) { var@10 -> ⊥ : isize ; } -About to evaluate statement: var@8 := false + [Debug] eval_operand: - ctx: @@ -10435,6 +11625,31 @@ About to evaluate statement: var@8 := false false [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 + } + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10467,29 +11682,14 @@ false var@10 -> ⊥ : isize ; } -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 - } -} + [Debug] +**About to evaluate statement**: [ + var@7 := false +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10522,7 +11722,7 @@ switch (move var@2) { var@10 -> ⊥ : isize ; } -About to evaluate statement: var@7 := false + [Debug] eval_operand: - ctx: @@ -10563,6 +11763,30 @@ About to evaluate statement: var@7 := false false [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 + } + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10595,28 +11819,14 @@ false var@10 -> ⊥ : isize ; } -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 - } -} + [Debug] +**About to evaluate statement**: [ + var@7 := true +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10649,7 +11859,7 @@ switch (move var@2) { var@10 -> ⊥ : isize ; } -About to evaluate statement: var@7 := true + [Debug] eval_operand: - ctx: @@ -10690,6 +11900,29 @@ About to evaluate statement: var@7 := true true [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 + } + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10722,27 +11955,14 @@ true var@10 -> ⊥ : isize ; } -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 - } -} + [Debug] +**About to evaluate statement**: [ + var@8 := true +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10775,7 +11995,7 @@ switch (move var@2) { var@10 -> ⊥ : isize ; } -About to evaluate statement: var@8 := true + [Debug] eval_operand: - ctx: @@ -10816,6 +12036,28 @@ About to evaluate statement: var@8 := true true [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 + } + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10848,26 +12090,14 @@ true var@10 -> ⊥ : isize ; } -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 - } -} + [Debug] +**About to evaluate statement**: [ + var@2 := discriminant(l) +] + +**Context**: # 2 frame(s) # Frame 0: @@ -10900,9 +12130,30 @@ switch (move var@2) { var@10 -> ⊥ : isize ; } -About to evaluate statement: var@2 := discriminant(l) + [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**: # 2 frame(s) # Frame 0: @@ -10935,23 +12186,7 @@ About to evaluate statement: var@2 := discriminant(l) var@10 -> ⊥ : isize ; } -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 - } -} + [Debug] eval_operand: - ctx: @@ -10994,6 +12229,20 @@ move var@2 [Debug] Value to move: 0: isize [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 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11026,18 +12275,14 @@ move var@2 var@10 -> ⊥ : isize ; } -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 + [Debug] +**About to evaluate statement**: [ + var@8 := false +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11070,7 +12315,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: var@8 := false + [Debug] eval_operand: - ctx: @@ -11111,6 +12356,19 @@ About to evaluate statement: var@8 := false false [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**: # 2 frame(s) # Frame 0: @@ -11143,17 +12401,14 @@ false var@10 -> ⊥ : isize ; } -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 + [Debug] +**About to evaluate statement**: [ + hd := move (l as test1::List::Cons).0 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11186,7 +12441,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: hd := move (l as test1::List::Cons).0 + [Debug] eval_operand: - ctx: @@ -11229,6 +12484,18 @@ move (l as test1::List::Cons).0 [Debug] Value to move: 0: 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); + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11261,16 +12528,14 @@ move (l as test1::List::Cons).0 var@10 -> ⊥ : isize ; } -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) -return + [Debug] +**About to evaluate statement**: [ + var@7 := false +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11303,7 +12568,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: var@7 := false + [Debug] eval_operand: - ctx: @@ -11344,6 +12609,17 @@ About to evaluate statement: var@7 := false false [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**: # 2 frame(s) # Frame 0: @@ -11376,15 +12652,14 @@ false var@10 -> ⊥ : isize ; } -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 + [Debug] +**About to evaluate statement**: [ + tl := move (l as test1::List::Cons).1 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11417,7 +12692,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: tl := move (l as test1::List::Cons).1 + [Debug] eval_operand: - ctx: @@ -11460,6 +12735,16 @@ move (l as test1::List::Cons).1 [Debug] Value to move: @Box(test1::List::Nil) [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 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11492,14 +12777,14 @@ move (l as test1::List::Cons).1 var@10 -> ⊥ : isize ; } -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 + [Debug] +**About to evaluate statement**: [ + var@5 := move hd +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11532,7 +12817,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: var@5 := move hd + [Debug] eval_operand: - ctx: @@ -11575,6 +12860,15 @@ move hd [Debug] Value to move: 0: i32 [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 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11607,13 +12901,14 @@ move hd var@10 -> ⊥ : isize ; } -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] +**About to evaluate statement**: [ + var@6 := move deref_box(tl) +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11646,7 +12941,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: var@6 := move deref_box(tl) + [Debug] eval_operand: - ctx: @@ -11689,6 +12984,14 @@ move deref_box(tl) [Debug] Value to move: test1::List::Nil [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**: # 2 frame(s) # Frame 0: @@ -11721,12 +13024,14 @@ test1::List::Nil var@10 -> ⊥ : isize ; } -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 + [Debug] +**About to evaluate statement**: [ + (var@0).0 := move var@5 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11759,7 +13064,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: (var@0).0 := move var@5 + [Debug] eval_operand: - ctx: @@ -11808,6 +13113,13 @@ ty: (Types.Adt (Types.Tuple, [], (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))] )) [Debug] +**About to evaluate statement**: [ + (var@0).1 := move var@6; + var@9 := move alloc::alloc::box_free>(move tl); + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11840,11 +13152,14 @@ ty: (Types.Adt (Types.Tuple, [], var@10 -> ⊥ : isize ; } -About to evaluate statement: (var@0).1 := move var@6 -var@9 := move alloc::alloc::box_free>(move tl) -return + [Debug] +**About to evaluate statement**: [ + (var@0).1 := move var@6 +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11877,7 +13192,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: (var@0).1 := move var@6 + [Debug] eval_operand: - ctx: @@ -11920,6 +13235,12 @@ move var@6 [Debug] Value to move: test1::List::Nil [Debug] +**About to evaluate statement**: [ + var@9 := move alloc::alloc::box_free>(move tl); + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11952,10 +13273,14 @@ test1::List::Nil var@10 -> ⊥ : isize ; } -About to evaluate statement: var@9 := move alloc::alloc::box_free>(move tl) -return + [Debug] +**About to evaluate statement**: [ + var@9 := move alloc::alloc::box_free>(move tl) +] + +**Context**: # 2 frame(s) # Frame 0: @@ -11988,7 +13313,7 @@ return var@10 -> ⊥ : isize ; } -About to evaluate statement: var@9 := move alloc::alloc::box_free>(move tl) + [Debug] eval_non_local_function_call: - fid:CfimAst.BoxFree @@ -11997,6 +13322,11 @@ About to evaluate statement: var@9 := move alloc::alloc::box_free ⊥ : isize ; } -About to evaluate statement: return + [Debug] ctx_pop_frame: # 2 frame(s) @@ -12149,6 +13479,18 @@ move var@0 [Debug] Value to move: (0: i32, test1::List::Nil) [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**: # 1 frame(s) # Frame 0: @@ -12166,16 +13508,14 @@ move var@0 var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + hd := copy (var@6).0 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12193,7 +13533,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: hd := copy (var@6).0 + [Debug] eval_operand: - ctx: @@ -12221,6 +13561,17 @@ copy (var@6).0 [Debug] Value to copy: 0: 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**: # 1 frame(s) # Frame 0: @@ -12238,15 +13589,14 @@ copy (var@6).0 var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + tl := move (var@6).1 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12264,7 +13614,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: tl := move (var@6).1 + [Debug] eval_operand: - ctx: @@ -12292,6 +13642,16 @@ move (var@6).1 [Debug] Value to move: test1::List::Nil [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**: # 1 frame(s) # Frame 0: @@ -12309,14 +13669,14 @@ test1::List::Nil var@10 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@10 := copy hd +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12334,7 +13694,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: var@10 := copy hd + [Debug] eval_operand: - ctx: @@ -12362,6 +13722,15 @@ copy hd [Debug] Value to copy: 0: 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12379,13 +13748,14 @@ copy hd var@10 -> 0: i32 ; } -About to evaluate statement: var@9 := move var@10 == 0: i32 -var@8 := ¬ move var@9 -assert(¬move var@8) -drop(tl) -return + [Debug] +**About to evaluate statement**: [ + var@9 := move var@10 == 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12403,7 +13773,7 @@ return var@10 -> 0: i32 ; } -About to evaluate statement: var@9 := move var@10 == 0: i32 + [Debug] eval_operand: - ctx: @@ -12454,6 +13824,14 @@ move var@10 0: i32 [Debug] +**About to evaluate statement**: [ + var@8 := ¬ move var@9; + assert(¬move var@8); + drop(tl); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12471,12 +13849,14 @@ move var@10 var@10 -> ⊥ : i32 ; } -About to evaluate statement: var@8 := ¬ move var@9 -assert(¬move var@8) -drop(tl) -return + [Debug] +**About to evaluate statement**: [ + var@8 := ¬ move var@9 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12494,7 +13874,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: var@8 := ¬ move var@9 + [Debug] eval_operand: - ctx: @@ -12522,6 +13902,13 @@ move var@9 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@8); + drop(tl); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12539,11 +13926,14 @@ true var@10 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@8) -drop(tl) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@8) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12561,7 +13951,7 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@8) + [Debug] eval_operand: - ctx: @@ -12589,6 +13979,12 @@ move var@8 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + drop(tl); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12606,10 +14002,14 @@ false var@10 -> ⊥ : i32 ; } -About to evaluate statement: drop(tl) -return + [Debug] +**About to evaluate statement**: [ + drop(tl) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12627,10 +14027,15 @@ return var@10 -> ⊥ : i32 ; } -About to evaluate statement: drop(tl) + [Debug] drop_value: place: tl [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12648,10 +14053,36 @@ About to evaluate statement: drop(tl) var@10 -> ⊥ : i32 ; } -About to evaluate statement: return + [Debug] test_unit_function: 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**: # 1 frame(s) # Frame 0: @@ -12677,30 +14108,14 @@ About to evaluate statement: return var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12726,7 +14141,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: x := 0: i32 + [Debug] eval_operand: - ctx: @@ -12760,6 +14175,31 @@ About to evaluate statement: x := 0: i32 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**: # 1 frame(s) # Frame 0: @@ -12785,29 +14225,14 @@ About to evaluate statement: x := 0: i32 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + y := 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12833,7 +14258,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: y := 0: i32 + [Debug] eval_operand: - ctx: @@ -12867,6 +14292,30 @@ About to evaluate statement: y := 0: i32 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**: # 1 frame(s) # Frame 0: @@ -12892,28 +14341,14 @@ About to evaluate statement: y := 0: i32 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@5 := &mut x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -12939,9 +14374,32 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@5 := &mut x + [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**: # 1 frame(s) # Frame 0: @@ -12967,27 +14425,14 @@ About to evaluate statement: var@5 := &mut x var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@4 := &two-phase *(var@5) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -13013,9 +14458,31 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@4 := &two-phase *(var@5) + [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**: # 1 frame(s) # Frame 0: @@ -13041,26 +14508,14 @@ About to evaluate statement: var@4 := &two-phase *(var@5) var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@7 := &mut y +] + +**Context**: # 1 frame(s) # Frame 0: @@ -13086,9 +14541,30 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@7 := &mut y + [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**: # 1 frame(s) # Frame 0: @@ -13114,25 +14590,14 @@ About to evaluate statement: var@7 := &mut y var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@6 := &two-phase *(var@7) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -13158,9 +14623,29 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@6 := &two-phase *(var@7) + [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**: # 1 frame(s) # Frame 0: @@ -13186,24 +14671,14 @@ About to evaluate statement: var@6 := &two-phase *(var@7) var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + z := move get_elem(true, move var@4, move var@6) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -13229,7 +14704,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: z := move get_elem(true, move var@4, move var@6) + [Debug] eval_operand: - ctx: @@ -13337,6 +14812,18 @@ move var@6 [Debug] Value to move: &mut@3 (0: i32) [Debug] +**About to evaluate statement**: [ + var@4 := copy b; + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + }; + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -13371,16 +14858,14 @@ move var@6 var@4 -> ⊥ : bool ; } -About to evaluate statement: var@4 := copy b -if (move var@4) { - var@0 := &mut *(x) -} -else { - var@0 := move y -} -return + [Debug] +**About to evaluate statement**: [ + var@4 := copy b +] + +**Context**: # 2 frame(s) # Frame 0: @@ -13415,7 +14900,7 @@ return var@4 -> ⊥ : bool ; } -About to evaluate statement: var@4 := copy b + [Debug] eval_operand: - ctx: @@ -13460,6 +14945,17 @@ copy b [Debug] Value to copy: true [Debug] +**About to evaluate statement**: [ + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + }; + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -13494,15 +14990,19 @@ true var@4 -> true ; } -About to evaluate statement: if (move var@4) { - var@0 := &mut *(x) -} -else { - var@0 := move y -} -return + [Debug] +**About to evaluate statement**: [ + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + } +] + +**Context**: # 2 frame(s) # Frame 0: @@ -13537,12 +15037,7 @@ return var@4 -> true ; } -About to evaluate statement: if (move var@4) { - var@0 := &mut *(x) -} -else { - var@0 := move y -} + [Debug] eval_operand: - ctx: @@ -13587,6 +15082,11 @@ move var@4 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + var@0 := &mut *(x) +] + +**Context**: # 2 frame(s) # Frame 0: @@ -13621,9 +15121,14 @@ true var@4 -> ⊥ : bool ; } -About to evaluate statement: var@0 := &mut *(x) + [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -13658,7 +15163,7 @@ About to evaluate statement: var@0 := &mut *(x) var@4 -> ⊥ : bool ; } -About to evaluate statement: return + [Debug] ctx_pop_frame: # 2 frame(s) @@ -13778,6 +15283,25 @@ move var@0 [Debug] Value to move: &mut@4 (0: i32) [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**: # 1 frame(s) # Frame 0: @@ -13803,23 +15327,14 @@ move var@0 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@8 := copy *(z) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -13845,7 +15360,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@8 := copy *(z) + [Debug] eval_operand: - ctx: @@ -13881,6 +15396,24 @@ copy *(z) [Debug] Value to copy: 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); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -13906,22 +15439,14 @@ copy *(z) var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + *(z) := copy var@8 + 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -13947,7 +15472,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: *(z) := copy var@8 + 1: i32 + [Debug] eval_operand: - ctx: @@ -14014,6 +15539,23 @@ copy var@8 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**: # 1 frame(s) # Frame 0: @@ -14039,21 +15581,14 @@ copy var@8 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@12 := copy *(z) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14079,7 +15614,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@12 := copy *(z) + [Debug] eval_operand: - ctx: @@ -14115,6 +15650,22 @@ copy *(z) [Debug] Value to copy: 1: i32 [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**: # 1 frame(s) # Frame 0: @@ -14140,20 +15691,14 @@ copy *(z) var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@11 := move var@12 == 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14179,7 +15724,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@11 := move var@12 == 1: i32 + [Debug] eval_operand: - ctx: @@ -14246,6 +15791,21 @@ move var@12 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**: # 1 frame(s) # Frame 0: @@ -14271,19 +15831,14 @@ move var@12 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14309,7 +15864,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@10 := ¬ move var@11 + [Debug] eval_operand: - ctx: @@ -14345,6 +15900,20 @@ move var@11 [Debug] Value to move: true [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**: # 1 frame(s) # Frame 0: @@ -14370,18 +15939,14 @@ true var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + assert(¬move var@10) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14407,7 +15972,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@10) + [Debug] eval_operand: - ctx: @@ -14443,6 +16008,19 @@ move var@10 [Debug] Value to move: false [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**: # 1 frame(s) # Frame 0: @@ -14468,17 +16046,14 @@ false var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@15 := copy x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14504,7 +16079,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@15 := copy x + [Debug] eval_operand: - ctx: @@ -14540,6 +16115,18 @@ copy x [Debug] Value to copy: 1: 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**: # 1 frame(s) # Frame 0: @@ -14565,16 +16152,14 @@ copy x var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@14 := move var@15 == 1: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14600,7 +16185,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@14 := move var@15 == 1: i32 + [Debug] eval_operand: - ctx: @@ -14667,6 +16252,17 @@ move var@15 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**: # 1 frame(s) # Frame 0: @@ -14692,15 +16288,14 @@ move var@15 var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + var@13 := ¬ move var@14 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14726,7 +16321,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@13 := ¬ move var@14 + [Debug] eval_operand: - ctx: @@ -14762,6 +16357,16 @@ move var@14 [Debug] Value to move: true [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**: # 1 frame(s) # Frame 0: @@ -14787,14 +16392,14 @@ true var@18 -> ⊥ : i32 ; } -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 + [Debug] +**About to evaluate statement**: [ + assert(¬move var@13) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14820,7 +16425,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@13) + [Debug] eval_operand: - ctx: @@ -14856,6 +16461,15 @@ move var@13 [Debug] Value to move: false [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**: # 1 frame(s) # Frame 0: @@ -14881,13 +16495,14 @@ false var@18 -> ⊥ : i32 ; } -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] +**About to evaluate statement**: [ + var@18 := copy y +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14913,7 +16528,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@18 := copy y + [Debug] eval_operand: - ctx: @@ -14949,6 +16564,14 @@ copy y [Debug] Value to copy: 0: i32 [Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 0: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -14974,12 +16597,14 @@ copy y var@18 -> 0: i32 ; } -About to evaluate statement: var@17 := move var@18 == 0: i32 -var@16 := ¬ move var@17 -assert(¬move var@16) -return + [Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 0: i32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15005,7 +16630,7 @@ return var@18 -> 0: i32 ; } -About to evaluate statement: var@17 := move var@18 == 0: i32 + [Debug] eval_operand: - ctx: @@ -15072,6 +16697,13 @@ move var@18 0: i32 [Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15097,11 +16729,14 @@ move var@18 var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@16 := ¬ move var@17 -assert(¬move var@16) -return + [Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15127,7 +16762,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: var@16 := ¬ move var@17 + [Debug] eval_operand: - ctx: @@ -15163,6 +16798,12 @@ move var@17 [Debug] Value to move: true [Debug] +**About to evaluate statement**: [ + assert(¬move var@16); + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15188,10 +16829,14 @@ true var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@16) -return + [Debug] +**About to evaluate statement**: [ + assert(¬move var@16) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15217,7 +16862,7 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@16) + [Debug] eval_operand: - ctx: @@ -15253,6 +16898,11 @@ move var@16 [Debug] Value to move: false [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15278,10 +16928,28 @@ false var@18 -> ⊥ : i32 ; } -About to evaluate statement: return + [Debug] test_unit_function: 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**: # 1 frame(s) # Frame 0: @@ -15299,22 +16967,14 @@ About to evaluate statement: return var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + x := 0: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15332,7 +16992,7 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: x := 0: u32 + [Debug] eval_operand: - ctx: @@ -15358,6 +17018,23 @@ About to evaluate statement: x := 0: u32 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**: # 1 frame(s) # Frame 0: @@ -15375,21 +17052,14 @@ About to evaluate statement: x := 0: u32 var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15407,9 +17077,25 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: px := &mut x + [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**: # 1 frame(s) # Frame 0: @@ -15427,20 +17113,14 @@ About to evaluate statement: px := &mut x var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + var@4 := move px +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15458,7 +17138,7 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: var@4 := move px + [Debug] eval_operand: - ctx: @@ -15486,6 +17166,21 @@ move px [Debug] Value to move: &mut@0 (0: u32) [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**: # 1 frame(s) # Frame 0: @@ -15503,19 +17198,14 @@ move px var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + (p).0 := move var@4 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15533,7 +17223,7 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: (p).0 := move var@4 + [Debug] eval_operand: - ctx: @@ -15567,6 +17257,20 @@ ty: (Types.Adt (Types.Tuple, [], (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**: # 1 frame(s) # Frame 0: @@ -15584,18 +17288,14 @@ ty: (Types.Adt (Types.Tuple, [], var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + (p).1 := 1: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15613,7 +17313,7 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: (p).1 := 1: u32 + [Debug] eval_operand: - ctx: @@ -15639,6 +17339,19 @@ About to evaluate statement: (p).1 := 1: u32 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**: # 1 frame(s) # Frame 0: @@ -15656,17 +17369,14 @@ About to evaluate statement: (p).1 := 1: u32 var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + pp0 := &mut p +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15684,9 +17394,21 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: pp0 := &mut p + [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**: # 1 frame(s) # Frame 0: @@ -15704,16 +17426,14 @@ About to evaluate statement: pp0 := &mut p var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + var@7 := &two-phase *(pp0) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15731,9 +17451,20 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: var@7 := &two-phase *(pp0) + [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**: # 1 frame(s) # Frame 0: @@ -15751,15 +17482,14 @@ About to evaluate statement: var@7 := &two-phase *(pp0) var@10 -> ⊥ : &'_ mut (u32) ; } -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 + [Debug] +**About to evaluate statement**: [ + pp1 := move id_mut_pair(move var@7) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -15777,7 +17507,7 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: pp1 := move id_mut_pair(move var@7) + [Debug] eval_operand: - ctx: @@ -15832,6 +17562,13 @@ move var@7 [Debug] Value to move: &mut@2 ((&mut@0 (0: u32), 1: u32)) [Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -15856,11 +17593,14 @@ move var@7 var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; } -About to evaluate statement: var@2 := &mut *(x) -var@0 := &mut *(var@2) -return + [Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**Context**: # 2 frame(s) # Frame 0: @@ -15885,9 +17625,15 @@ return var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; } -About to evaluate statement: var@2 := &mut *(x) + [Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -15912,10 +17658,14 @@ About to evaluate statement: var@2 := &mut *(x) var@2 -> &mut@3 ((&mut@0 (0: u32), 1: u32)) ; } -About to evaluate statement: var@0 := &mut *(var@2) -return + [Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: # 2 frame(s) # Frame 0: @@ -15940,9 +17690,14 @@ return var@2 -> &mut@3 ((&mut@0 (0: u32), 1: u32)) ; } -About to evaluate statement: var@0 := &mut *(var@2) + [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 2 frame(s) # Frame 0: @@ -15967,7 +17722,7 @@ About to evaluate statement: var@0 := &mut *(var@2) var@2 -> &mut@3 (⌊mut@4⌋) ; } -About to evaluate statement: return + [Debug] ctx_pop_frame: # 2 frame(s) @@ -16055,6 +17810,16 @@ move var@0 [Debug] Value to move: &mut@4 ((&mut@0 (0: u32), 1: 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 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16072,14 +17837,14 @@ move var@0 var@10 -> ⊥ : &'_ mut (u32) ; } -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] +**About to evaluate statement**: [ + y := 2: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16097,7 +17862,7 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: y := 2: u32 + [Debug] eval_operand: - ctx: @@ -16123,6 +17888,15 @@ About to evaluate statement: y := 2: u32 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**: # 1 frame(s) # Frame 0: @@ -16140,13 +17914,14 @@ About to evaluate statement: y := 2: u32 var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: var@10 := &mut y -var@9 := &mut *(var@10) -*((pp1).0) := move var@9 -*((pp1).1) := 3: u32 -return + [Debug] +**About to evaluate statement**: [ + var@10 := &mut y +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16164,9 +17939,17 @@ return var@10 -> ⊥ : &'_ mut (u32) ; } -About to evaluate statement: var@10 := &mut y + [Debug] +**About to evaluate statement**: [ + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16184,12 +17967,14 @@ About to evaluate statement: var@10 := &mut y var@10 -> &mut@5 (2: u32) ; } -About to evaluate statement: var@9 := &mut *(var@10) -*((pp1).0) := move var@9 -*((pp1).1) := 3: u32 -return + [Debug] +**About to evaluate statement**: [ + var@9 := &mut *(var@10) +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16207,9 +17992,16 @@ return var@10 -> &mut@5 (2: u32) ; } -About to evaluate statement: var@9 := &mut *(var@10) + [Debug] +**About to evaluate statement**: [ + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16227,11 +18019,14 @@ About to evaluate statement: var@9 := &mut *(var@10) var@10 -> &mut@5 (⌊mut@6⌋) ; } -About to evaluate statement: *((pp1).0) := move var@9 -*((pp1).1) := 3: u32 -return + [Debug] +**About to evaluate statement**: [ + *((pp1).0) := move var@9 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16249,7 +18044,7 @@ return var@10 -> &mut@5 (⌊mut@6⌋) ; } -About to evaluate statement: *((pp1).0) := move var@9 + [Debug] eval_operand: - ctx: @@ -16277,6 +18072,12 @@ move var@9 [Debug] Value to move: &mut@6 (2: u32) [Debug] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32; + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16294,10 +18095,14 @@ move var@9 var@10 -> &mut@5 (⌊mut@6⌋) ; } -About to evaluate statement: *((pp1).1) := 3: u32 -return + [Debug] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32 +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16315,7 +18120,7 @@ return var@10 -> &mut@5 (⌊mut@6⌋) ; } -About to evaluate statement: *((pp1).1) := 3: u32 + [Debug] eval_operand: - ctx: @@ -16341,6 +18146,11 @@ About to evaluate statement: *((pp1).1) := 3: u32 3: u32 [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16358,10 +18168,16 @@ About to evaluate statement: *((pp1).1) := 3: u32 var@10 -> &mut@5 (⌊mut@6⌋) ; } -About to evaluate statement: return + [Debug] test_unit_function: test_char [Debug] +**About to evaluate statement**: [ + var@0 := a; + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16369,10 +18185,14 @@ About to evaluate statement: return var@0 -> ⊥ : char ; } -About to evaluate statement: var@0 := a -return + [Debug] +**About to evaluate statement**: [ + var@0 := a +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16380,7 +18200,7 @@ return var@0 -> ⊥ : char ; } -About to evaluate statement: var@0 := a + [Debug] eval_operand: - ctx: @@ -16396,6 +18216,11 @@ About to evaluate statement: var@0 := a a [Debug] +**About to evaluate statement**: [ + return +] + +**Context**: # 1 frame(s) # Frame 0: @@ -16403,5 +18228,16678 @@ a var@0 -> a ; } -About to evaluate statement: return + + +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] +**About to evaluate statement**: [ + var@4 := copy y; + var@0 := copy var@3 + copy var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + var@0 := copy var@3 + copy var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := copy var@3 + copy var@4 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@3 + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@4 + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@2 : u32) ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[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; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] +**About to evaluate statement**: [ + var@4 := copy y; + var@0 := copy var@3 - copy var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + var@0 := copy var@3 - copy var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := copy var@3 - copy var@4 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@3 + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + +- op: +copy var@4 + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@2 : u32) ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : (u32, bool) ; +} + + + +[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; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] +**About to evaluate statement**: [ + var@4 := copy y; + var@0 := move var@3 / move var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + var@0 := move var@3 / move var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := move var@3 / move var@4 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + +- op: +move var@3 + +[Debug] Value to move: +proj_comp {} (s@0 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + +- op: +move var@4 + +[Debug] Value to move: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@2 : u32) ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[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; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] +**About to evaluate statement**: [ + var@4 := copy y; + var@0 := move var@3 % move var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + var@0 := move var@3 % move var@4; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := move var@3 % move var@4 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@0 : u32) ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + +- op: +move var@3 + +[Debug] Value to move: +proj_comp {} (s@0 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@1 : u32) ; + var@5 -> ⊥ : bool ; +} + + +- op: +move var@4 + +[Debug] Value to move: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@2 : u32) ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : bool ; +} + + + +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 23: u32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 ; +} + + +- op: +23: u32 + +[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); + return +] + +**Context**: +# 1 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + y := 44: u32 +] + +**Context**: +# 1 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 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 ; +} + + +- op: +44: u32 + +[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); + return +] + +**Context**: +# 1 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + z := 67: u32 +] + +**Context**: +# 1 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 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 ; +} + + +- op: +67: u32 + +[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**: +# 1 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := copy x +] + +**Context**: +# 1 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 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 ; +} + + +- op: +copy x + +[Debug] Value to copy: +23: u32 +[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); + return +] + +**Context**: +# 1 frame(s) + +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + (p).x := move var@5 +] + +**Context**: +# 1 frame(s) + +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# 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 ; +} + + +- op: +move var@5 + +[Debug] Value to move: +23: u32 +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + (p).y := 67: u32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 ; +} + + +- op: +67: u32 + +[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 +] + +**Context**: +# 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 ; + o -> ⊥ : test1::One ; + e0 -> ⊥ : test1::EmptyEnum ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] +**About to evaluate statement**: [ + (s as test1::Sum::Right).0 := true +] + +**Context**: +# 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 ; + o -> ⊥ : test1::One ; + e0 -> ⊥ : test1::EmptyEnum ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 ; + o -> ⊥ : test1::One ; + e0 -> ⊥ : test1::EmptyEnum ; + e1 -> ⊥ : test1::EmptyEnum ; + 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**: [ + 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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(s, 1) +] + +**Context**: +# 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 ; +} + + + +[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); + return +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + (o as test1::One::One).0 := 3: u64 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 ; +} + + +- 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**: [ + set_discriminant(o, 0); + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return +] + +**Context**: +# 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::One { 0 = 3: u64; } ; + e0 -> ⊥ : test1::EmptyEnum ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(o, 0) +] + +**Context**: +# 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::One { 0 = 3: u64; } ; + e0 -> ⊥ : test1::EmptyEnum ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(e0, 0); + set_discriminant(enum0, 0); + return +] + +**Context**: +# 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::One { 0 = 3: u64; } ; + e0 -> ⊥ : test1::EmptyEnum ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(e0, 0) +] + +**Context**: +# 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::One { 0 = 3: u64; } ; + e0 -> ⊥ : test1::EmptyEnum ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(enum0, 0); + return +] + +**Context**: +# 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::One { 0 = 3: u64; } ; + e0 -> test1::EmptyEnum::Empty ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(enum0, 0) +] + +**Context**: +# 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::One { 0 = 3: u64; } ; + e0 -> test1::EmptyEnum::Empty ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> ⊥ : test1::Enum ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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::One { 0 = 3: u64; } ; + e0 -> test1::EmptyEnum::Empty ; + e1 -> ⊥ : test1::EmptyEnum ; + enum0 -> test1::Enum::Variant1 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> ⊥ : u32 ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := move var@4 >= move var@5 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; +} + + +- op: +move var@4 + +[Debug] Value to move: +proj_comp {} (s@0 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> proj_comp {} (s@1 : u32) ; +} + + +- op: +move var@5 + +[Debug] Value to move: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + }; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@2 : bool) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + if (move var@3) { + var@0 := copy x + } + else { + var@0 := copy y + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> proj_comp {} (s@2 : bool) ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> true ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + +- op: +move var@3 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + var@0 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> false ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + +- op: +move var@3 + +[Debug] Value to move: +false +[Debug] +**About to evaluate statement**: [ + var@0 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : u32 ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@0 : u32) ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@1 : u32) ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + var@3 -> ⊥ : bool ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; +} + + + +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move get_max(4: u32, 3: u32) +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + y -> ⊥ : u32 ; + z -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +4: u32 + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + y -> ⊥ : u32 ; + z -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +3: u32 + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + y := move get_max(10: u32, 11: u32) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> ⊥ : u32 ; + z -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +10: u32 + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> ⊥ : u32 ; + z -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +11: u32 + +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> ⊥ : u32 ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> ⊥ : u32 ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + z := copy var@4 + copy var@5 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +copy var@4 + +[Debug] Value to copy: +proj_comp {} (s@0 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> ⊥ : u32 ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +copy var@5 + +[Debug] Value to copy: +proj_comp {} (s@1 : u32) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := copy z +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +copy z + +[Debug] Value to copy: +proj_comp {} (s@2 : u32) +[Debug] +**About to evaluate statement**: [ + var@8 := move var@9 == 15: u32; + var@7 := ¬ move var@8; + assert(¬move var@7); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> proj_comp {} (s@2 : u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := move var@9 == 15: u32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> proj_comp {} (s@2 : u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> proj_comp {} (s@2 : u32) ; +} + + +- op: +move var@9 + +[Debug] Value to move: +proj_comp {} (s@2 : u32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +15: u32 + +[Debug] +**About to evaluate statement**: [ + var@7 := ¬ move var@8; + assert(¬move var@7); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> proj_comp {} (s@3 : bool) ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := ¬ move var@8 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> proj_comp {} (s@3 : bool) ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> proj_comp {} (s@3 : bool) ; + var@9 -> ⊥ : u32 ; +} + + +- op: +move var@8 + +[Debug] Value to move: +proj_comp {} (s@3 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@7); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> proj_comp {} (s@4 : bool) ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@7) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> proj_comp {} (s@4 : bool) ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> true ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + +- op: +move var@7 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {} (s@0 : u32) ; + y -> proj_comp {} (s@1 : u32) ; + z -> proj_comp {} (s@2 : u32) ; + var@4 -> proj_comp {} (s@0 : u32) ; + var@5 -> proj_comp {} (s@1 : u32) ; + var@6 -> ⊥ : (u32, bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : u32 ; +} + + + +[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; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> ⊥ : i32 ; + var@3 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> ⊥ : i32 ; + var@3 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> ⊥ : i32 ; + var@3 -> ⊥ : bool ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : i32) +[Debug] +**About to evaluate statement**: [ + var@3 := copy var@2 == -2147483648: i32; + assert(¬move var@3); + var@0 := - move var@2; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := copy var@2 == -2147483648: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> ⊥ : bool ; +} + + +- op: +copy var@2 + +[Debug] Value to copy: +proj_comp {} (s@0 : i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> ⊥ : bool ; +} + + +- op: +-2147483648: i32 + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@3); + var@0 := - move var@2; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> proj_comp {} (s@1 : bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@3) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> proj_comp {} (s@1 : bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> true ; +} + + +- op: +move var@3 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + var@0 := - move var@2; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := - move var@2 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> proj_comp {} (s@0 : i32) ; + var@3 -> ⊥ : bool ; +} + + +- op: +move var@2 + +[Debug] Value to move: +proj_comp {} (s@0 : i32) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@2 : i32) ; + x -> proj_comp {} (s@0 : i32) ; + var@2 -> ⊥ : i32 ; + var@3 -> ⊥ : bool ; +} + + + +[Debug] test_function_symbolic: test_neg1 +[Debug] +**About to evaluate statement**: [ + x := 3: i32; + y := -3: i32; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 3: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; +} + + +- op: +3: i32 + +[Debug] +**About to evaluate statement**: [ + y := -3: i32; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 3: i32 ; + y -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + y := -3: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 3: i32 ; + y -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 3: i32 ; + y -> ⊥ : i32 ; +} + + +- op: +-3: i32 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 3: i32 ; + y -> -3: i32 ; +} + + + +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# 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 ; +} + + + +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + *(*(ppx)) := 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (0: i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + +- op: +1: i32 + +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := copy x +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⌊mut@1⌋ ; + ppx -> &mut@1 (&mut@0 (1: i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + +- op: +copy x + +[Debug] Value to copy: +1: i32 +[Debug] +**About to evaluate statement**: [ + var@5 := move var@6 == 1: i32; + var@4 := ¬ move var@5; + assert(¬move var@4); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> 1: i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := move var@6 == 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> 1: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> 1: i32 ; +} + + +- op: +move var@6 + +[Debug] Value to move: +1: i32 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + +- op: +1: i32 + +[Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5; + assert(¬move var@4); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> proj_comp {} (s@0 : bool) ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> proj_comp {} (s@0 : bool) ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> proj_comp {} (s@0 : bool) ; + var@6 -> ⊥ : i32 ; +} + + +- op: +move var@5 + +[Debug] Value to move: +proj_comp {} (s@0 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@4); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> proj_comp {} (s@1 : bool) ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@4) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> proj_comp {} (s@1 : bool) ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> true ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + +- op: +move var@4 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 1: i32 ; + px -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : i32 ; +} + + + +[Debug] test_function_symbolic: refs_test2 +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + y := 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⊥ : i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +1: i32 + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# 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 ; +} + + + +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + py := &mut y +] + +**Context**: +# 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 ; +} + + + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + ppx := &mut px +] + +**Context**: +# 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 ; +} + + + +[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); + return +] + +**Context**: +# 1 frame(s) + +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := &mut *(py) +] + +**Context**: +# 1 frame(s) + +# 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 ; +} + + + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + *(ppx) := move var@6 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@1⌋ ; + px -> ⌊mut@2⌋ ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> &mut@2 (&mut@0 (0: i32)) ; + var@6 -> &mut@3 (1: i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@6 + +[Debug] Value to move: +&mut@3 (1: i32) +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + *(*(ppx)) := 2: i32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⌊mut@2⌋ ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> &mut@2 (&mut@3 (1: i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +2: i32 + +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⌊mut@2⌋ ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> &mut@2 (&mut@3 (2: i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := copy *(px) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⌊mut@2⌋ ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> &mut@2 (&mut@3 (2: i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⌊mut@2⌋ ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> &mut@2 (&mut@3 (2: i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +copy *(px) + +[Debug] Value to copy: +2: i32 +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := move var@9 == 2: i32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> 2: i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@9 + +[Debug] Value to move: +2: i32 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +2: i32 + +[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 +] + +**Context**: +# 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 -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := ¬ move var@8 +] + +**Context**: +# 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 -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@0 : bool) ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@8 + +[Debug] Value to move: +proj_comp {} (s@0 : bool) +[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 +] + +**Context**: +# 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 -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@7) +] + +**Context**: +# 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 -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> true ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@7 + +[Debug] Value to move: +true +[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); + return +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@12 := copy x +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +copy x + +[Debug] Value to copy: +0: i32 +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@11 := move var@12 == 0: i32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> 0: i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@12 + +[Debug] Value to move: +0: i32 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[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 +] + +**Context**: +# 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 -> proj_comp {} (s@2 : bool) ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: +# 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 -> proj_comp {} (s@2 : bool) ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@2 : bool) ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@11 + +[Debug] Value to move: +proj_comp {} (s@2 : bool) +[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); + return +] + +**Context**: +# 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 -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@10) +] + +**Context**: +# 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 -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> true ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@10 + +[Debug] Value to move: +true +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@15 := copy *(py) +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> &mut@3 (2: i32) ; + py -> &mut@1 (⌊mut@3⌋) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +copy *(py) + +[Debug] Value to copy: +2: i32 +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@14 := move var@15 == 2: i32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⊥ : &'_ mut (i32) ; + py -> &mut@1 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> 2: i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@15 + +[Debug] Value to move: +2: i32 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⊥ : &'_ mut (i32) ; + py -> &mut@1 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +2: i32 + +[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); + return +] + +**Context**: +# 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 -> proj_comp {} (s@4 : bool) ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@13 := ¬ move var@14 +] + +**Context**: +# 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 -> proj_comp {} (s@4 : bool) ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@4 : bool) ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@14 + +[Debug] Value to move: +proj_comp {} (s@4 : bool) +[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**: +# 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 -> proj_comp {} (s@5 : bool) ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@13) +] + +**Context**: +# 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 -> proj_comp {} (s@5 : bool) ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⊥ : &'_ mut (i32) ; + py -> &mut@1 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> true ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@13 + +[Debug] Value to move: +true +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@18 := copy y +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⌊mut@1⌋ ; + px -> ⊥ : &'_ mut (i32) ; + py -> &mut@1 (2: i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +copy y + +[Debug] Value to copy: +2: i32 +[Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 2: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> 2: i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 2: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> 2: i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> 2: i32 ; +} + + +- op: +move var@18 + +[Debug] Value to move: +2: i32 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +2: i32 + +[Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> proj_comp {} (s@6 : bool) ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> proj_comp {} (s@6 : bool) ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> proj_comp {} (s@6 : bool) ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@17 + +[Debug] Value to move: +proj_comp {} (s@6 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@16); + return +] + +**Context**: +# 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 -> proj_comp {} (s@7 : bool) ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@16) +] + +**Context**: +# 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 -> proj_comp {} (s@7 : bool) ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> true ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@16 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> 2: i32 ; + px -> ⊥ : &'_ mut (i32) ; + py -> ⊥ : &'_ mut (i32) ; + ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : i32 ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; +} + + + +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> test1::List::Nil ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> test1::List::Nil ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [test1::List] +- args: [move var@3] +- dest: var@2 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> test1::List::Nil ; +} + + +- op: +move var@3 + +[Debug] Value to move: +test1::List::Nil +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + 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**: [ + (l as test1::List::Cons).1 := move var@2; + set_discriminant(l, 0); + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; +} + + +- op: +move var@2 + +[Debug] Value to move: +proj_comp {} (s@0 : std::boxed::Box>) +[Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0); + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] +**About to evaluate statement**: [ + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] +**About to evaluate statement**: [ + drop(l) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; +} + + + +[Debug] drop_value: place: l +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; +} + + + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + b := move alloc::boxed::Box::new(0: i32) +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [i32] +- args: [0: i32] +- dest: b +[Debug] eval_operand: +- ctx: +# 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 ; +} + + +- op: +0: i32 + +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@3 := &two-phase b +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> proj_comp {} (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 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({0}, proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move core::ops::deref::DerefMut::deref_mut(move var@3) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({0}, proj_comp {} (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 ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxDerefMut +- type_params: [i32] +- args: [move var@3] +- dest: x +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({0}, proj_comp {} (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 ; +} + + +- op: +move var@3 + +[Debug] activate_inactivated_mut_borrow: resulting value: +{ Values.value = + (Values.Symbolic + { Values.svalue = + { Values.sv_id = 0; + sv_ty = + (Types.Adt ((Types.Assumed Types.Box), [], + [(Types.Integer Types.I32)])) + }; + rset_ended = {} }); + ty = + (Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) } +[Debug] Value to move: +&mut@0 (proj_comp {} (s@0 : std::boxed::Box)) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> proj_comp {} (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)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *(x) := 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> proj_comp {} (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)) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> ⌊mut@0⌋ ; + x -> proj_comp {} (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)) + } +} + + +- op: +1: i32 + +[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 +] + +**Context**: +# 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] +**About to evaluate statement**: [ + var@5 := &b +] + +**Context**: +# 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] +**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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := move core::ops::deref::Deref>::deref(move var@5) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxDeref +- type_params: [i32] +- args: [move var@5] +- dest: x +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 ; +} + + +- op: +move var@5 + +[Debug] Value to move: +⌊shared@2⌋ +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; + x -> proj_comp {} (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)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := copy *(x) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; + x -> proj_comp {} (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)) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; + x -> proj_comp {} (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)) + } +} + + +- op: +copy *(x) + +[Debug] Value to copy: +proj_comp {} (s@5 : i32) +[Debug] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32; + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 -> proj_comp {} (s@5 : i32) ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := move var@8 == 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 -> proj_comp {} (s@5 : i32) ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 -> proj_comp {} (s@5 : i32) ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + +- op: +move var@8 + +[Debug] Value to move: +proj_comp {} (s@5 : i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + +- op: +1: i32 + +[Debug] +**About to evaluate statement**: [ + var@6 := ¬ move var@7; + assert(¬move var@6); + drop(b); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 -> proj_comp {} (s@6 : bool) ; + var@8 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := ¬ move var@7 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 -> proj_comp {} (s@6 : bool) ; + var@8 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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 -> proj_comp {} (s@6 : bool) ; + var@8 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + +- op: +move var@7 + +[Debug] Value to move: +proj_comp {} (s@6 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@6); + drop(b); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; + x -> ⌊shared@3⌋ ; + var@5 -> ⊥ : &'_ (std::boxed::Box) ; + var@6 -> proj_comp {} (s@7 : bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@6) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; + x -> ⌊shared@3⌋ ; + var@5 -> ⊥ : &'_ (std::boxed::Box) ; + var@6 -> proj_comp {} (s@7 : bool) ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + x -> ⊥ : &'_ mut (i32) ; + var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; + x -> ⌊shared@3⌋ ; + var@5 -> ⊥ : &'_ (std::boxed::Box) ; + var@6 -> true ; + var@7 -> ⊥ : bool ; + var@8 -> ⊥ : i32 ; + abs@1{parents={}}{regions={1}} { + ⌊shared@2⌋, + @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + +- op: +move var@6 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + drop(b); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + drop(b) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + b -> @shared_loan({2}, proj_comp {0} (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}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + } +} + + + +[Debug] drop_value: place: b +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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 ; +} + + + +[Debug] test_function_symbolic: copy_int +[Debug] +**About to evaluate statement**: [ + var@0 := copy x; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : i32 ; + x -> proj_comp {} (s@0 : i32) ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : i32) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@0 : i32) ; + x -> proj_comp {} (s@0 : i32) ; +} + + + +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + px -> ⊥ : &'_ (i32) ; + y -> ⊥ : i32 ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + px := &x +] + +**Context**: +# 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 ; +} + + + +[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 +] + +**Context**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy x +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> ⊥ : i32 ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + +- op: +copy x + +[Debug] Value to copy: +@shared_loan({0}, 0: i32) +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> ⊥ : i32 ; + var@4 -> 0: i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + y := move copy_int(move var@4) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> ⊥ : i32 ; + var@4 -> 0: i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> ⊥ : i32 ; + var@4 -> 0: i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + +- op: +move var@4 + +[Debug] Value to move: +0: i32 +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := copy *(px) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + +- op: +copy *(px) + +[Debug] Value to copy: +0: i32 +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> 0: i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> 0: i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> 0: i32 ; + var@8 -> ⊥ : i32 ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {} (s@0 : i32) +[Debug] +**About to evaluate statement**: [ + var@6 := move var@7 == move var@8; + var@5 := ¬ move var@6; + assert(¬move var@5); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> 0: i32 ; + var@8 -> proj_comp {} (s@0 : i32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := move var@7 == move var@8 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> 0: i32 ; + var@8 -> proj_comp {} (s@0 : i32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> 0: i32 ; + var@8 -> proj_comp {} (s@0 : i32) ; +} + + +- op: +move var@7 + +[Debug] Value to move: +0: i32 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> proj_comp {} (s@0 : i32) ; +} + + +- op: +move var@8 + +[Debug] Value to move: +proj_comp {} (s@0 : i32) +[Debug] +**About to evaluate statement**: [ + var@5 := ¬ move var@6; + assert(¬move var@5); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> proj_comp {} (s@1 : bool) ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := ¬ move var@6 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> proj_comp {} (s@1 : bool) ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> proj_comp {} (s@1 : bool) ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + +- op: +move var@6 + +[Debug] Value to move: +proj_comp {} (s@1 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@5); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> proj_comp {} (s@2 : bool) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@5) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> proj_comp {} (s@2 : bool) ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> true ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + +- op: +move var@5 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> @shared_loan({0}, 0: i32) ; + px -> ⌊shared@0⌋ ; + y -> proj_comp {} (s@0 : i32) ; + var@4 -> ⊥ : i32 ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : bool ; + var@7 -> ⊥ : i32 ; + var@8 -> ⊥ : i32 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 (test1::List)) + } + var@0 -> ⊥ : bool ; + l -> proj_comp {} (s@0 : &r@0 (test1::List)) ; + var@2 -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := discriminant(*(l)) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 (test1::List)) + } + var@0 -> ⊥ : bool ; + l -> proj_comp {} (s@0 : &r@0 (test1::List)) ; + var@2 -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + }; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (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 ; +} + + +- op: +move var@2 + +[Debug] Value to move: +0: isize +[Debug] +**About to evaluate statement**: [ + var@0 := true +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (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 ; +} + + +- op: +true + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + }; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Nil, test1::List::Nil) + } + var@0 -> ⊥ : bool ; + l -> ⌊shared@0⌋ ; + var@2 -> 1: isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + switch (move var@2) { + 0: isize => { + var@0 := true + } + 1: isize => { + var@0 := false + } + _ => { + panic + } + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Nil, test1::List::Nil) + } + var@0 -> ⊥ : bool ; + l -> ⌊shared@0⌋ ; + var@2 -> 1: isize ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Nil, test1::List::Nil) + } + var@0 -> ⊥ : bool ; + l -> ⌊shared@0⌋ ; + var@2 -> 1: isize ; +} + + +- op: +move var@2 + +[Debug] Value to move: +1: isize +[Debug] +**About to evaluate statement**: [ + var@0 := false +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + @shared_loan({0}, test1::List::Nil, test1::List::Nil) + } + var@0 -> ⊥ : bool ; + l -> ⌊shared@0⌋ ; + var@2 -> ⊥ : isize ; +} + + +- op: +false + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# 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 ; +} + + + +[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 +] + +**Context**: +# 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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1) +] + +**Context**: +# 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) ; +} + + + +[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); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# 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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] + +**Context**: +# 1 frame(s) + +# 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) ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [test1::List] +- args: [move var@3] +- dest: var@2 +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# 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) ; +} + + +- op: +move var@3 + +[Debug] Value to move: +test1::List::Nil +[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); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⊥ : &'_ (test1::List) ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⊥ : &'_ (test1::List) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (s@0 : 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] 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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⊥ : &'_ (test1::List) ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⊥ : &'_ (test1::List) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⊥ : &'_ (test1::List) ; +} + + +- op: +move var@2 + +[Debug] Value to move: +proj_comp {} (s@0 : std::boxed::Box>) +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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) ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := &l +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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) ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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⌋ ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := copy var@7 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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⌋ ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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⌋ ; +} + + +- op: +copy var@7 + +[Debug] Value to copy: +⌊shared@0⌋ +[Debug] +**About to evaluate statement**: [ + var@5 := move is_cons(move var@6); + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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⌋ ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := move is_cons(move var@6) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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⌋ ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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⌋ ; +} + + +- op: +move var@6 + +[Debug] Value to move: +⌊shared@1⌋ +[Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5; + assert(¬move var@4); + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> proj_comp {} (s@1 : bool) ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := ¬ move var@5 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> proj_comp {} (s@1 : bool) ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + var@4 -> ⊥ : bool ; + var@5 -> proj_comp {} (s@1 : bool) ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } +} + + +- op: +move var@5 + +[Debug] Value to move: +proj_comp {} (s@1 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@4); + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + var@4 -> proj_comp {} (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) + } +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@4) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + var@4 -> proj_comp {} (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) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + var@4 -> true ; + var@5 -> ⊥ : bool ; + var@6 -> ⊥ : &'_ (test1::List) ; + var@7 -> ⌊shared@0⌋ ; + abs@0{parents={}}{regions={0}} { + ⌊shared@1⌋, + proj_loans (s@1 : bool) + } +} + + +- op: +move var@4 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + drop(l); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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) + } +} + + + +[Debug] +**About to evaluate statement**: [ + drop(l) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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) + } +} + + + +[Debug] drop_value: place: l +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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) ; +} + + + +[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 + } + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := false +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + +- op: +false + +[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 + } + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := false +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + +- op: +false + +[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 + } + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := true +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + +- op: +true + +[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 + } + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := true +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + +- op: +true + +[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 + } + } +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := discriminant(l) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> proj_comp {} (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 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + +- op: +move var@2 + +[Debug] Value to move: +0: isize +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := false +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + +- op: +false + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + hd := move (l as test1::List::Cons).0 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (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 ; +} + + +- op: +move (l as test1::List::Cons).0 + +[Debug] Value to move: +proj_comp {} (s@1 : T) +[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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := false +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (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 ; +} + + +- op: +false + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + tl := move (l as test1::List::Cons).1 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (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 ; +} + + +- op: +move (l as test1::List::Cons).1 + +[Debug] Value to move: +proj_comp {} (s@2 : std::boxed::Box>) +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (s@1 : T) ; + tl -> proj_comp {} (s@2 : std::boxed::Box>) ; + var@5 -> ⊥ : T ; + var@6 -> ⊥ : test1::List ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := move hd +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (s@1 : T) ; + tl -> proj_comp {} (s@2 : std::boxed::Box>) ; + var@5 -> ⊥ : T ; + var@6 -> ⊥ : test1::List ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : (T, test1::List) ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> ⊥ : isize ; + hd -> proj_comp {} (s@1 : T) ; + tl -> proj_comp {} (s@2 : std::boxed::Box>) ; + var@5 -> ⊥ : T ; + var@6 -> ⊥ : test1::List ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + +- op: +move hd + +[Debug] Value to move: +proj_comp {} (s@1 : T) +[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 +] + +**Context**: +# 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 -> proj_comp {} (s@2 : std::boxed::Box>) ; + var@5 -> proj_comp {} (s@1 : T) ; + var@6 -> ⊥ : test1::List ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := move deref_box(tl) +] + +**Context**: +# 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 -> proj_comp {} (s@2 : std::boxed::Box>) ; + var@5 -> proj_comp {} (s@1 : T) ; + var@6 -> ⊥ : test1::List ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@2 : std::boxed::Box>) ; + var@5 -> proj_comp {} (s@1 : T) ; + var@6 -> ⊥ : test1::List ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + +- op: +move deref_box(tl) + +[Debug] Value to move: +proj_comp {} (s@3 : test1::List) +[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**: +# 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 -> proj_comp {} (s@1 : T) ; + var@6 -> proj_comp {} (s@3 : test1::List) ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + (var@0).0 := move var@5 +] + +**Context**: +# 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 -> proj_comp {} (s@1 : T) ; + var@6 -> proj_comp {} (s@3 : test1::List) ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@1 : T) ; + var@6 -> proj_comp {} (s@3 : test1::List) ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + +- op: +move var@5 + +[Debug] Value to move: +proj_comp {} (s@1 : T) +[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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> (proj_comp {} (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 -> proj_comp {} (s@3 : test1::List) ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] +**About to evaluate statement**: [ + (var@0).1 := move var@6 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> (proj_comp {} (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 -> proj_comp {} (s@3 : test1::List) ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> (proj_comp {} (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 -> proj_comp {} (s@3 : test1::List) ; + var@7 -> false ; + var@8 -> false ; + var@9 -> ⊥ : () ; + var@10 -> ⊥ : isize ; +} + + +- op: +move var@6 + +[Debug] Value to move: +proj_comp {} (s@3 : test1::List) +[Debug] +**About to evaluate statement**: [ + var@9 := move alloc::alloc::box_free>(move tl); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> (proj_comp {} (s@1 : T), proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := move alloc::alloc::box_free>(move tl) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> (proj_comp {} (s@1 : T), proj_comp {} (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 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> (proj_comp {} (s@1 : T), proj_comp {} (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 ; +} + + + +[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**: +# 1 frame(s) + +# 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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# 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 ; +} + + +- op: +move var@2 + +[Debug] Value to move: +1: isize +[Debug] +**About to evaluate statement**: [ + panic +] + +**Context**: +# 1 frame(s) + +# 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 ; +} + + + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(var@3, 1) +] + +**Context**: +# 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 ; +} + + + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := move alloc::boxed::Box>::new(move var@3) +] + +**Context**: +# 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 ; +} + + + +[Debug] eval_non_local_function_call: +- fid:CfimAst.BoxNew +- type_params: [test1::List] +- args: [move var@3] +- dest: var@2 +[Debug] eval_operand: +- ctx: +# 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 ; +} + + +- op: +move var@3 + +[Debug] Value to move: +test1::List::Nil +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).0 := 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> proj_comp {} (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 ; +} + + +- 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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + (l as test1::List::Cons).1 := move var@2 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; + var@2 -> proj_comp {} (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 ; +} + + +- op: +move var@2 + +[Debug] Value to move: +proj_comp {} (s@0 : std::boxed::Box>) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + set_discriminant(l, 0) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := move l +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (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 ; +} + + +- op: +move l + +[Debug] Value to move: +test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } +[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**: +# 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 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := move split_list(move var@7) +] + +**Context**: +# 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 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + +- op: +move var@7 + +[Debug] Value to move: +test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } +[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**: +# 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 -> proj_comp {} (s@1 : (i32, test1::List)) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + hd := copy (var@6).0 +] + +**Context**: +# 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 -> proj_comp {} (s@1 : (i32, test1::List)) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@1 : (i32, test1::List)) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + +- op: +copy (var@6).0 + +[Debug] Value to copy: +proj_comp {} (s@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); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> ⊥ : test1::List ; + var@6 -> (proj_comp {} (s@2 : i32), proj_comp {} (s@3 : test1::List)) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + tl := move (var@6).1 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> ⊥ : test1::List ; + var@6 -> (proj_comp {} (s@2 : i32), proj_comp {} (s@3 : test1::List)) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> ⊥ : test1::List ; + var@6 -> (proj_comp {} (s@2 : i32), proj_comp {} (s@3 : test1::List)) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + +- op: +move (var@6).1 + +[Debug] Value to move: +proj_comp {} (s@3 : test1::List) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := copy hd +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + +- op: +copy hd + +[Debug] Value to copy: +proj_comp {} (s@2 : 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 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> proj_comp {} (s@2 : i32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := move var@10 == 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> proj_comp {} (s@2 : i32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> proj_comp {} (s@2 : i32) ; +} + + +- op: +move var@10 + +[Debug] Value to move: +proj_comp {} (s@2 : i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + var@8 := ¬ move var@9; + assert(¬move var@8); + drop(tl); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> proj_comp {} (s@4 : bool) ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := ¬ move var@9 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> proj_comp {} (s@4 : bool) ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> proj_comp {} (s@4 : bool) ; + var@10 -> ⊥ : i32 ; +} + + +- op: +move var@9 + +[Debug] Value to move: +proj_comp {} (s@4 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@8); + drop(tl); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> proj_comp {} (s@5 : bool) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@8) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> proj_comp {} (s@5 : bool) ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> true ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + +- op: +move var@8 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + drop(tl); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + drop(tl) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> proj_comp {} (s@3 : test1::List) ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + var@10 -> ⊥ : i32 ; +} + + + +[Debug] drop_value: place: tl +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + l -> ⊥ : test1::List ; + var@2 -> ⊥ : std::boxed::Box> ; + var@3 -> ⊥ : test1::List ; + hd -> proj_comp {} (s@2 : i32) ; + tl -> ⊥ : test1::List ; + var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@7 -> ⊥ : test1::List ; + var@8 -> ⊥ : bool ; + var@9 -> ⊥ : bool ; + 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**: +# 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 -> proj_comp {} (s@0 : bool) ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := copy b +] + +**Context**: +# 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 -> proj_comp {} (s@0 : bool) ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@0 : bool) ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> ⊥ : bool ; +} + + +- op: +copy b + +[Debug] Value to copy: +proj_comp {} (s@0 : bool) +[Debug] +**About to evaluate statement**: [ + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + }; + return +] + +**Context**: +# 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 -> proj_comp {} (s@0 : bool) ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> proj_comp {} (s@0 : bool) ; +} + + + +[Debug] +**About to evaluate statement**: [ + if (move var@4) { + var@0 := &mut *(x) + } + else { + var@0 := move y + } +] + +**Context**: +# 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 -> proj_comp {} (s@0 : bool) ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> proj_comp {} (s@0 : bool) ; +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> true ; +} + + +- op: +move var@4 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(x) +] + +**Context**: +# 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 -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + false, + proj_loans (s@1 : &r@0 mut (T)), + proj_loans (s@2 : &r@0 mut (T)) + } + var@0 -> ⊥ : &'_ mut (T) ; + b -> false ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> false ; +} + + +- op: +move var@4 + +[Debug] Value to move: +false +[Debug] +**About to evaluate statement**: [ + var@0 := move y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + false, + proj_loans (s@1 : &r@0 mut (T)), + proj_loans (s@2 : &r@0 mut (T)) + } + var@0 -> ⊥ : &'_ mut (T) ; + b -> false ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> ⊥ : bool ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + false, + proj_loans (s@1 : &r@0 mut (T)), + proj_loans (s@2 : &r@0 mut (T)) + } + var@0 -> ⊥ : &'_ mut (T) ; + b -> false ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> ⊥ : bool ; +} + + +- op: +move y + +[Debug] Value to move: +proj_comp {} (s@2 : &r@0 mut (T)) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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 (proj_comp {} (s@3 : T)) ; + b -> true ; + x -> &mut@0 (⌊mut@1⌋) ; + y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@4 -> ⊥ : bool ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + false, + proj_loans (s@1 : &r@0 mut (T)), + proj_loans (s@2 : &r@0 mut (T)) + } + var@0 -> proj_comp {} (s@2 : &r@0 mut (T)) ; + b -> false ; + x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + y -> ⊥ : &'_ mut (T) ; + 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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : i32 ; + y -> ⊥ : i32 ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⊥ : i32 ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + y := 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⊥ : i32 ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> 0: i32 ; + y -> ⊥ : i32 ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@5 := &mut x +] + +**Context**: +# 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 ; +} + + + +[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**: +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := &two-phase *(var@5) +] + +**Context**: +# 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 ; +} + + + +[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**: +# 1 frame(s) + +# 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := &mut y +] + +**Context**: +# 1 frame(s) + +# 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 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⌊inactivated_mut@1⌋ ; + var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; + var@6 -> ⊥ : &'_ 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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@6 := &two-phase *(var@7) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⌊inactivated_mut@1⌋ ; + var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; + var@6 -> ⊥ : &'_ 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 ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⌊inactivated_mut@1⌋ ; + var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; + var@6 -> ⌊inactivated_mut@3⌋ ; + var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + z := move get_elem(true, move var@4, move var@6) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⌊inactivated_mut@1⌋ ; + var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; + var@6 -> ⌊inactivated_mut@3⌋ ; + var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⌊inactivated_mut@1⌋ ; + var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; + var@6 -> ⌊inactivated_mut@3⌋ ; + var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +true + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⌊inactivated_mut@1⌋ ; + var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ; + var@6 -> ⌊inactivated_mut@3⌋ ; + var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@4 + +[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] Value to move: +&mut@1 (0: i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> &mut@0 (⌊mut@1⌋) ; + var@6 -> ⌊inactivated_mut@3⌋ ; + var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ; + var@8 -> ⊥ : i32 ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@6 + +[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] Value to move: +&mut@3 (0: i32) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> proj_comp {} (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)) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@8 := copy *(z) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> proj_comp {} (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)) + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> proj_comp {} (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)) + } +} + + +- op: +copy *(z) + +[Debug] Value to copy: +proj_comp {} (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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (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)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + *(z) := copy var@8 + 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (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)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- op: +copy var@8 + +[Debug] Value to copy: +proj_comp {} (s@1 : i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- op: +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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (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)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@12 := copy *(z) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (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)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- op: +copy *(z) + +[Debug] Value to copy: +proj_comp {} (s@2 : i32) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> proj_comp {} (s@2 : 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)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@11 := move var@12 == 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> proj_comp {} (s@2 : 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)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> proj_comp {} (s@2 : i32) ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- op: +move var@12 + +[Debug] Value to move: +proj_comp {} (s@2 : i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- op: +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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> proj_comp {} (s@3 : bool) ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := ¬ move var@11 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> proj_comp {} (s@3 : bool) ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> proj_comp {} (s@3 : bool) ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- op: +move var@11 + +[Debug] Value to move: +proj_comp {} (s@3 : bool) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> proj_comp {} (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 ; + 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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> proj_comp {} (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 ; + 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: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> true ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + 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] Value to move: +true +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (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)⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@15 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (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)⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + y -> ⌊mut@2⌋ ; + z -> &mut@4 (proj_comp {} (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 -> proj_comp {} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; + abs@0{parents={}}{regions={0}} { + true, + &mut@1 (0: i32), + &mut@3 (0: i32), + ⌊mut@4, proj_loans (s@1 : i32)⌋ + } +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {0} (s@5 : 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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> proj_comp {0} (s@5 : i32) ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@14 := move var@15 == 1: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> proj_comp {0} (s@5 : i32) ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> proj_comp {0} (s@5 : i32) ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@15 + +[Debug] Value to move: +proj_comp {0} (s@5 : i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> proj_comp {} (s@7 : bool) ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@13 := ¬ move var@14 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> proj_comp {} (s@7 : bool) ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> proj_comp {} (s@7 : bool) ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@14 + +[Debug] Value to move: +proj_comp {} (s@7 : bool) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> proj_comp {} (s@8 : bool) ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@13) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> proj_comp {} (s@8 : bool) ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> true ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@13 + +[Debug] Value to move: +true +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (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 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@18 := copy y +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (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 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (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 (proj_comp {0} (s@6 : i32)) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +copy y + +[Debug] Value to copy: +proj_comp {0} (s@6 : i32) +[Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 0: i32; + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {0} (s@6 : i32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@17 := move var@18 == 0: i32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {0} (s@6 : i32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {0} (s@6 : i32) ; +} + + +- op: +move var@18 + +[Debug] Value to move: +proj_comp {0} (s@6 : i32) +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> ⊥ : bool ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +0: i32 + +[Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17; + assert(¬move var@16); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {} (s@9 : bool) ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@16 := ¬ move var@17 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {} (s@9 : bool) ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {} (s@9 : bool) ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@17 + +[Debug] Value to move: +proj_comp {} (s@9 : bool) +[Debug] +**About to evaluate statement**: [ + assert(¬move var@16); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {} (s@10 : bool) ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] +**About to evaluate statement**: [ + assert(¬move var@16) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 -> proj_comp {} (s@10 : bool) ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (s@1 : i32) ; + var@9 -> ⊥ : (i32, bool) ; + var@10 -> ⊥ : bool ; + var@11 -> ⊥ : bool ; + var@12 -> ⊥ : i32 ; + var@13 -> ⊥ : bool ; + var@14 -> ⊥ : bool ; + var@15 -> ⊥ : i32 ; + var@16 -> true ; + var@17 -> ⊥ : bool ; + var@18 -> ⊥ : i32 ; +} + + +- op: +move var@16 + +[Debug] Value to move: +true +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> proj_comp {0} (s@5 : i32) ; + y -> proj_comp {0} (s@6 : i32) ; + z -> ⊥ : &'_ mut (i32) ; + var@4 -> ⊥ : &'_ mut (i32) ; + var@5 -> ⊥ : &'_ mut (i32) ; + var@6 -> ⊥ : &'_ mut (i32) ; + var@7 -> ⊥ : &'_ mut (i32) ; + var@8 -> proj_comp {0} (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 ; +} + + + +[Debug] test_function_symbolic: id_mut_mut +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) + } + abs@1{parents={0}}{regions={1}} { + proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; + x -> proj_comp {} (s@0 : &r@0 mut (&r@1 mut (T))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) + } + abs@1{parents={0}}{regions={1}} { + proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; + x -> proj_comp {} (s@0 : &r@0 mut (&r@1 mut (T))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@1 mut (T))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_loan(0, proj_loans (s@1 : &r@1 mut (T))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; + x -> &mut@0 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : &r@1 mut (T))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@1 mut (T))⌋ + } + abs@1{parents={0}}{regions={1}} { + @ignored_mut_loan(0, proj_loans (s@1 : &r@1 mut (T))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; + x -> &mut@0 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : &r@1 mut (T))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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 (proj_comp {} (s@1 : &r@1 mut (T))) ; + x -> &mut@0 (⌊mut@1⌋) ; + 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**: +# 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 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (T), u32))) ; + var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**Context**: +# 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 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (T), u32))) ; + var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: +# 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 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : (&r@0 mut (T), u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: +# 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 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : (&r@0 mut (T), u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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 (proj_comp {} (s@1 : (&r@0 mut (T), u32))) ; + x -> &mut@0 (⌊mut@1⌋) ; + 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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⊥ : (&'_ mut (u32), u32) ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + x := 0: u32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⊥ : (&'_ mut (u32), u32) ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⊥ : u32 ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⊥ : (&'_ mut (u32), u32) ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + +- op: +0: u32 + +[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**: +# 1 frame(s) + +# 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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + px := &mut x +] + +**Context**: +# 1 frame(s) + +# 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) ; +} + + + +[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**: +# 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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@4 := move px +] + +**Context**: +# 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) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> &mut@0 (0: u32) ; + p -> ⊥ : (&'_ mut (u32), u32) ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move px + +[Debug] Value to move: +&mut@0 (0: u32) +[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**: +# 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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + (p).0 := move var@4 +] + +**Context**: +# 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) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⊥ : (&'_ mut (u32), u32) ; + var@4 -> &mut@0 (0: u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move var@4 + +[Debug] Value to move: +&mut@0 (0: u32) +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> (&mut@0 (0: u32), ⊥ : u32) ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + (p).1 := 1: u32 +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> (&mut@0 (0: u32), ⊥ : u32) ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> (&mut@0 (0: u32), ⊥ : u32) ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + +- op: +1: u32 + +[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**: +# 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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + pp0 := &mut p +] + +**Context**: +# 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) ; +} + + + +[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**: +# 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) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@7 := &two-phase *(pp0) +] + +**Context**: +# 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) ; +} + + + +[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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⌊mut@1⌋ ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⌊inactivated_mut@2⌋ ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] +**About to evaluate statement**: [ + pp1 := move id_mut_pair(move var@7) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⌊mut@1⌋ ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⌊inactivated_mut@2⌋ ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : () ; + x -> ⌊mut@0⌋ ; + px -> ⊥ : &'_ mut (u32) ; + p -> ⌊mut@1⌋ ; + var@4 -> ⊥ : &'_ mut (u32) ; + pp0 -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ; + pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + var@7 -> ⌊inactivated_mut@2⌋ ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; +} + + +- op: +move var@7 + +[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] Value to move: +&mut@2 ((&mut@0 (0: u32), 1: 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 +] + +**Context**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + y := 2: u32 +] + +**Context**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; + y -> ⊥ : u32 ; + var@9 -> ⊥ : &'_ mut (u32) ; + var@10 -> ⊥ : &'_ mut (u32) ; + abs@0{parents={}}{regions={0}} { + &mut@2 ((&mut@0 (0: u32), 1: u32)), + proj_loans (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) + } +} + + +- op: +2: u32 + +[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**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@10 := &mut y +] + +**Context**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := &mut *(var@10); + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + var@9 := &mut *(var@10) +] + +**Context**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *((pp1).0) := move var@9; + *((pp1).1) := 3: u32; + return +] + +**Context**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] +**About to evaluate statement**: [ + *((pp1).0) := move var@9 +] + +**Context**: +# 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 -> proj_comp {} (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))) + } +} + + + +[Debug] eval_operand: +- ctx: +# 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 -> proj_comp {} (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))) + } +} + + +- op: +move var@9 + +[Debug] Value to move: +&mut@4 (2: u32) +[Debug] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32; + return +] + +**Context**: +# 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), proj_comp {} (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))⌋ + } +} + + + +[Debug] +**About to evaluate statement**: [ + *((pp1).1) := 3: u32 +] + +**Context**: +# 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), proj_comp {} (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))⌋ + } +} + + + +[Debug] eval_operand: +- ctx: +# 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), proj_comp {} (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))⌋ + } +} + + +- op: +3: u32 + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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), 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))⌋ + } +} + + + +[Debug] test_function_symbolic: id_mut_mut_pair +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x); + var@0 := &mut *(var@2); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + x -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) + } + var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + x -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋ + } + var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + x -> &mut@0 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut ((&r@0 mut (T), u32)))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋ + } + var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; + x -> &mut@0 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut ((&r@0 mut (T), u32)))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + abs@0{parents={}}{regions={0}} { + ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋ + } + var@0 -> &mut@2 (proj_comp {} (s@1 : &r@0 mut ((&r@0 mut (T), u32)))) ; + x -> &mut@0 (⌊mut@1⌋) ; + 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**: +# 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 -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@2 := &mut *(x) +] + +**Context**: +# 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 -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))) ; + var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2); + return +] + +**Context**: +# 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 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut (&r@0 mut (u32)))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := &mut *(var@2) +] + +**Context**: +# 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 (⌊mut@1⌋) ; + var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut (&r@0 mut (u32)))) ; +} + + + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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 (proj_comp {} (s@1 : &r@0 mut (&r@0 mut (u32)))) ; + x -> &mut@0 (⌊mut@1⌋) ; + var@2 -> &mut@1 (⌊mut@2⌋) ; +} + + + +[Debug] test_function_symbolic: id_borrow1 +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 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))) + } + var@0 -> ⊥ : () ; + _x -> proj_comp {} (s@0 : &r@0 mut (&r@1 (u32))) ; + _y -> proj_comp {} (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**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : &'_ (u32) ; + x -> proj_comp {} (s@0 : &'static (u32)) ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := copy x +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : &'_ (u32) ; + x -> proj_comp {} (s@0 : &'static (u32)) ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : &'_ (u32) ; + x -> proj_comp {} (s@0 : &'static (u32)) ; +} + + +- op: +copy x + +[Debug] Value to copy: +proj_comp {} (s@0 : &'static (u32)) +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> proj_comp {} (s@0 : &'static (u32)) ; + x -> proj_comp {} (s@0 : &'static (u32)) ; +} + + + +[Debug] test_function_symbolic: test_char +[Debug] +**About to evaluate statement**: [ + var@0 := a; + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : char ; +} + + + +[Debug] +**About to evaluate statement**: [ + var@0 := a +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : char ; +} + + + +[Debug] eval_operand: +- ctx: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> ⊥ : char ; +} + + +- op: +a + +[Debug] +**About to evaluate statement**: [ + return +] + +**Context**: +# 1 frame(s) + +# Frame 0: +{ + var@0 -> a ; +} + + -- cgit v1.2.3 From 7137e0733650e0ce37eff4ff805c95543f2c1161 Mon Sep 17 00:00:00 2001 From: Son Ho Date: Thu, 6 Jan 2022 17:44:17 +0100 Subject: Remove the symbolic_proj_comp def and make the set of ended regions a field in the eval_ctx struct --- tests/trace_reference.txt | 2994 +++++++++++++++++++++++++++++++-------------- 1 file changed, 2078 insertions(+), 916 deletions(-) (limited to 'tests') diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt index 0901e59b..767b6cbb 100644 --- a/tests/trace_reference.txt +++ b/tests/trace_reference.txt @@ -897,6 +897,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -922,6 +923,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -943,6 +945,7 @@ fn test_char() -> char { [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -981,6 +984,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1006,6 +1010,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1027,6 +1032,7 @@ fn test_char() -> char { [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1064,6 +1070,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1089,6 +1096,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1110,6 +1118,7 @@ fn test_char() -> char { [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1146,6 +1155,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1171,6 +1181,7 @@ fn test_char() -> char { ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1192,6 +1203,7 @@ fn test_char() -> char { [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1229,6 +1241,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1254,6 +1267,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1275,6 +1289,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1315,6 +1330,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1340,6 +1356,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1361,6 +1378,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1394,6 +1412,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1419,6 +1438,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1440,6 +1460,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1475,6 +1496,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1500,6 +1522,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1529,6 +1552,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1554,6 +1578,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1575,6 +1600,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1608,6 +1634,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1633,6 +1660,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1660,6 +1688,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1685,6 +1714,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1711,6 +1741,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1736,6 +1767,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1761,6 +1793,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1796,6 +1829,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1820,6 +1854,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1840,6 +1875,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1862,6 +1898,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -1897,6 +1934,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -1931,6 +1969,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -1961,6 +2000,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2007,6 +2047,7 @@ copy x ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2041,6 +2082,7 @@ copy x ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2071,6 +2113,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2116,6 +2159,7 @@ copy y ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2150,6 +2194,7 @@ copy y ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2180,6 +2225,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2214,6 +2260,7 @@ move var@4 4: u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2258,6 +2305,7 @@ move var@5 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2297,6 +2345,7 @@ move var@5 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2327,6 +2376,7 @@ move var@5 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2365,6 +2415,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2395,6 +2446,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2433,6 +2485,7 @@ copy x ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2462,6 +2515,7 @@ copy x [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2495,6 +2549,7 @@ copy x [Debug] drop_value: place: y [Debug] drop_value: place: x [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2523,6 +2578,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2569,6 +2625,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -2593,6 +2650,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -2613,6 +2671,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -2635,6 +2694,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -2670,6 +2730,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2704,6 +2765,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2734,6 +2796,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2780,6 +2843,7 @@ copy x ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2814,6 +2878,7 @@ copy x ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2844,6 +2909,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2889,6 +2955,7 @@ copy y ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2923,6 +2990,7 @@ copy y ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2953,6 +3021,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -2987,6 +3056,7 @@ move var@4 10: u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3031,6 +3101,7 @@ move var@5 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3070,6 +3141,7 @@ move var@5 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3100,6 +3172,7 @@ move var@5 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3138,6 +3211,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3168,6 +3242,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3206,6 +3281,7 @@ copy y ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3235,6 +3311,7 @@ copy y [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3268,6 +3345,7 @@ copy y [Debug] drop_value: place: y [Debug] drop_value: place: x [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3296,6 +3374,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -3341,6 +3420,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3365,6 +3445,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3385,6 +3466,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3419,6 +3501,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3443,6 +3526,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3463,6 +3547,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3496,6 +3581,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3520,6 +3606,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3540,6 +3627,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3564,6 +3652,7 @@ copy var@4 4: u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3596,6 +3685,7 @@ copy var@5 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3620,6 +3710,7 @@ copy var@5 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3640,6 +3731,7 @@ copy var@5 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3671,6 +3763,7 @@ copy z ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3695,6 +3788,7 @@ copy z ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3715,6 +3809,7 @@ copy z [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3739,6 +3834,7 @@ move var@9 15: u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3767,6 +3863,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3791,6 +3888,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3811,6 +3909,7 @@ move var@9 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3840,6 +3939,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3864,6 +3964,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3884,6 +3985,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3912,6 +4014,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3939,6 +4042,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3956,6 +4060,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3969,6 +4074,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -3989,6 +4095,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4006,6 +4113,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4019,6 +4127,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4038,6 +4147,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4064,6 +4174,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4085,6 +4196,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4102,6 +4214,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4132,6 +4245,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4153,6 +4267,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4180,6 +4295,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4201,6 +4317,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4227,6 +4344,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4248,6 +4366,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4265,6 +4384,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4292,6 +4412,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4313,6 +4434,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4330,6 +4452,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4358,6 +4481,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4379,6 +4503,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4396,6 +4521,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4417,6 +4543,7 @@ move var@6 1: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4442,6 +4569,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4463,6 +4591,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4480,6 +4609,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4506,6 +4636,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4527,6 +4658,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4544,6 +4676,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4569,6 +4702,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4615,6 +4749,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4648,6 +4783,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4677,6 +4813,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4735,6 +4872,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4768,6 +4906,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4797,6 +4936,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4854,6 +4994,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4887,6 +5028,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4941,6 +5083,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -4974,6 +5117,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5027,6 +5171,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5060,6 +5205,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5112,6 +5258,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5145,6 +5292,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5196,6 +5344,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5229,6 +5378,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5258,6 +5408,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5312,6 +5463,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5345,6 +5497,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5374,6 +5527,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5425,6 +5579,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5458,6 +5613,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5487,6 +5643,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5539,6 +5696,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5572,6 +5730,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5601,6 +5760,7 @@ copy *(px) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5634,6 +5794,7 @@ move var@9 2: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5683,6 +5844,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5716,6 +5878,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5745,6 +5908,7 @@ move var@9 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5795,6 +5959,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5828,6 +5993,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5857,6 +6023,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5906,6 +6073,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5939,6 +6107,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -5968,6 +6137,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6016,6 +6186,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6049,6 +6220,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6078,6 +6250,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6111,6 +6284,7 @@ move var@12 0: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6156,6 +6330,7 @@ move var@12 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6189,6 +6364,7 @@ move var@12 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6218,6 +6394,7 @@ move var@12 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6264,6 +6441,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6297,6 +6475,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6326,6 +6505,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6371,6 +6551,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6404,6 +6585,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6433,6 +6615,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6477,6 +6660,7 @@ copy *(py) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6510,6 +6694,7 @@ copy *(py) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6539,6 +6724,7 @@ copy *(py) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6572,6 +6758,7 @@ move var@15 2: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6613,6 +6800,7 @@ move var@15 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6646,6 +6834,7 @@ move var@15 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6675,6 +6864,7 @@ move var@15 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6717,6 +6907,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6750,6 +6941,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6779,6 +6971,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6820,6 +7013,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6853,6 +7047,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6882,6 +7077,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6922,6 +7118,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6955,6 +7152,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -6984,6 +7182,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7017,6 +7216,7 @@ move var@18 2: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7054,6 +7254,7 @@ move var@18 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7087,6 +7288,7 @@ move var@18 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7116,6 +7318,7 @@ move var@18 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7154,6 +7357,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7187,6 +7391,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7216,6 +7421,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7253,6 +7459,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7293,6 +7500,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7311,6 +7519,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7334,6 +7543,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7352,6 +7562,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7371,6 +7582,7 @@ false - dest: var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7389,6 +7601,7 @@ move var@3 test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7412,6 +7625,7 @@ move var@1 [Debug] Value to move: test1::List::Nil [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7431,6 +7645,7 @@ test1::List::Nil [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7449,6 +7664,7 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7481,6 +7697,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7499,6 +7716,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7513,6 +7731,7 @@ move @return [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7539,6 +7758,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7557,6 +7777,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7571,6 +7792,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7595,6 +7817,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7613,6 +7836,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7632,6 +7856,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7650,6 +7875,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7669,6 +7895,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7699,6 +7926,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7722,6 +7950,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7746,6 +7975,7 @@ move var@2 - dest: b [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7767,6 +7997,7 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7795,6 +8026,7 @@ move var@1 [Debug] Value to move: 0: i32 [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7819,6 +8051,7 @@ move var@1 [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7842,6 +8075,7 @@ move var@1 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -7885,6 +8119,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7908,6 +8143,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7940,6 +8176,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7963,6 +8200,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -7987,6 +8225,7 @@ move @return - dest: x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8022,6 +8261,7 @@ move var@3 [Debug] Value to move: &mut@0 (@Box(0: i32)) [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -8046,6 +8286,7 @@ move var@3 [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -8069,6 +8310,7 @@ move var@3 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -8110,6 +8352,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8133,6 +8376,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8152,6 +8396,7 @@ move @return [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8184,6 +8429,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8207,6 +8453,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8236,6 +8483,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8259,6 +8507,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8283,6 +8532,7 @@ move @return - dest: x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8305,6 +8555,7 @@ move var@5 [Debug] Value to move: ⌊shared@2⌋ [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -8329,6 +8580,7 @@ move var@5 [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -8352,6 +8604,7 @@ move var@5 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -8390,6 +8643,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8413,6 +8667,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8432,6 +8687,7 @@ move @return [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8463,6 +8719,7 @@ copy *(x) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8486,6 +8743,7 @@ copy *(x) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8505,6 +8763,7 @@ copy *(x) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8528,6 +8787,7 @@ move var@8 1: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8556,6 +8816,7 @@ move var@8 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8579,6 +8840,7 @@ move var@8 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8598,6 +8860,7 @@ move var@8 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8627,6 +8890,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8650,6 +8914,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8669,6 +8934,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8697,6 +8963,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8720,6 +8987,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8744,6 +9012,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8777,6 +9046,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8800,6 +9070,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8819,6 +9090,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8852,6 +9124,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8875,6 +9148,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8905,6 +9179,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8928,6 +9203,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8947,6 +9223,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -8980,6 +9257,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9003,6 +9281,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9022,6 +9301,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9050,6 +9330,7 @@ move var@4 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9079,6 +9360,7 @@ move var@4 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9104,6 +9386,7 @@ move var@4 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9137,6 +9420,7 @@ copy x ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9161,6 +9445,7 @@ copy x [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9185,6 +9470,7 @@ copy x [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: x [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9208,6 +9494,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9246,6 +9533,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9269,6 +9557,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9288,6 +9577,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9319,6 +9609,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9342,6 +9633,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9361,6 +9653,7 @@ copy *(px) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9391,6 +9684,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9414,6 +9708,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9433,6 +9728,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9456,6 +9752,7 @@ move var@7 0: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9485,6 +9782,7 @@ move var@8 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9508,6 +9806,7 @@ move var@8 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9527,6 +9826,7 @@ move var@8 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9555,6 +9855,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9578,6 +9879,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9597,6 +9899,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9624,6 +9927,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9659,6 +9963,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9681,6 +9986,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9713,6 +10019,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9735,6 +10042,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9758,6 +10066,7 @@ false - dest: var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9780,6 +10089,7 @@ move var@3 test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9807,6 +10117,7 @@ move var@1 [Debug] Value to move: test1::List::Nil [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9830,6 +10141,7 @@ test1::List::Nil [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9852,6 +10164,7 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -9893,6 +10206,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9915,6 +10229,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9933,6 +10248,7 @@ move @return [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9968,6 +10284,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -9990,6 +10307,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10008,6 +10326,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10041,6 +10360,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10063,6 +10383,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10091,6 +10412,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10113,6 +10435,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10140,6 +10463,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10162,6 +10486,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10180,6 +10505,7 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10210,6 +10536,7 @@ copy var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10232,6 +10559,7 @@ copy var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10250,6 +10578,7 @@ copy var@7 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10288,6 +10617,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10317,6 +10647,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10357,6 +10688,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10396,6 +10728,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10421,6 +10754,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10454,6 +10788,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10479,6 +10814,7 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10510,6 +10846,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10534,6 +10871,7 @@ true [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10559,6 +10897,7 @@ true [Debug] drop_value: place: var@2 [Debug] drop_value: place: l [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10582,6 +10921,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -10618,6 +10958,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10640,6 +10981,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10658,6 +11000,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10686,6 +11029,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10708,6 +11052,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10726,6 +11071,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10753,6 +11099,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10775,6 +11122,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10798,6 +11146,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10835,6 +11184,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10860,6 +11210,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10898,6 +11249,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10923,6 +11275,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10949,6 +11302,7 @@ false - dest: var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -10974,6 +11328,7 @@ move var@3 test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11004,6 +11359,7 @@ move var@1 [Debug] Value to move: test1::List::Nil [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11030,6 +11386,7 @@ test1::List::Nil [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11055,6 +11412,7 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11102,6 +11460,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11127,6 +11486,7 @@ move @return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11148,6 +11508,7 @@ move @return [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11189,6 +11550,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11214,6 +11576,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11235,6 +11598,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11274,6 +11638,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11299,6 +11664,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11333,6 +11699,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11358,6 +11725,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11379,6 +11747,7 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11416,6 +11785,7 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11441,6 +11811,7 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11462,6 +11833,7 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -11512,6 +11884,7 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11552,6 +11925,7 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11588,6 +11962,7 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11650,6 +12025,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11690,6 +12066,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11726,6 +12103,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11787,6 +12165,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11827,6 +12206,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11863,6 +12243,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11923,6 +12304,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11963,6 +12345,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -11999,6 +12382,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12058,6 +12442,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12098,6 +12483,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12154,6 +12540,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12190,6 +12577,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12243,6 +12631,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12283,6 +12672,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12319,6 +12709,7 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12369,6 +12760,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12409,6 +12801,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12445,6 +12838,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12496,6 +12890,7 @@ move (l as test1::List::Cons).0 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12536,6 +12931,7 @@ move (l as test1::List::Cons).0 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12572,6 +12968,7 @@ move (l as test1::List::Cons).0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12620,6 +13017,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12660,6 +13058,7 @@ false ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12696,6 +13095,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12745,6 +13145,7 @@ move (l as test1::List::Cons).1 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12785,6 +13186,7 @@ move (l as test1::List::Cons).1 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12821,6 +13223,7 @@ move (l as test1::List::Cons).1 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12869,6 +13272,7 @@ move hd ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12909,6 +13313,7 @@ move hd ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12945,6 +13350,7 @@ move hd [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -12992,6 +13398,7 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13032,6 +13439,7 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13068,6 +13476,7 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13120,6 +13529,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13160,6 +13570,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13196,6 +13607,7 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13241,6 +13653,7 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13281,6 +13694,7 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13327,6 +13741,7 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13362,6 +13777,7 @@ test1::List::Nil [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13406,6 +13822,7 @@ test1::List::Nil [Debug] drop_value: place: var@2 [Debug] drop_value: place: l [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13440,6 +13857,7 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -13491,6 +13909,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13516,6 +13935,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13537,6 +13957,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13572,6 +13993,7 @@ copy (var@6).0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13597,6 +14019,7 @@ copy (var@6).0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13618,6 +14041,7 @@ copy (var@6).0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13652,6 +14076,7 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13677,6 +14102,7 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13698,6 +14124,7 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13731,6 +14158,7 @@ copy hd ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13756,6 +14184,7 @@ copy hd ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13777,6 +14206,7 @@ copy hd [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13802,6 +14232,7 @@ move var@10 0: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13832,6 +14263,7 @@ move var@10 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13857,6 +14289,7 @@ move var@10 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13878,6 +14311,7 @@ move var@10 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13909,6 +14343,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13934,6 +14369,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13955,6 +14391,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -13985,6 +14422,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14010,6 +14448,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14036,6 +14475,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14083,6 +14523,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14116,6 +14557,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14145,6 +14587,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14200,6 +14643,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14233,6 +14677,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14262,6 +14707,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14316,6 +14762,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14349,6 +14796,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14400,6 +14848,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14433,6 +14882,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14483,6 +14933,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14516,6 +14967,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14565,6 +15017,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14598,6 +15051,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14646,6 +15100,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14679,6 +15134,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14708,6 +15164,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14739,6 +15196,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14776,6 +15234,7 @@ move var@4 &mut@1 (0: i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -14824,6 +15283,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -14866,6 +15326,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -14904,6 +15365,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -14956,6 +15418,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15003,6 +15466,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15041,6 +15505,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15087,6 +15552,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15129,6 +15595,7 @@ true ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15166,6 +15633,7 @@ true [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15206,6 +15674,7 @@ true [Debug] drop_value: place: x [Debug] drop_value: place: b [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15242,6 +15711,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -15302,6 +15772,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15335,6 +15806,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15364,6 +15836,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15414,6 +15887,7 @@ copy *(z) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15447,6 +15921,7 @@ copy *(z) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15476,6 +15951,7 @@ copy *(z) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15509,6 +15985,7 @@ copy var@8 0: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15556,6 +16033,7 @@ copy var@8 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15589,6 +16067,7 @@ copy var@8 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15618,6 +16097,7 @@ copy var@8 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15666,6 +16146,7 @@ copy *(z) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15699,6 +16180,7 @@ copy *(z) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15728,6 +16210,7 @@ copy *(z) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15761,6 +16244,7 @@ move var@12 1: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15806,6 +16290,7 @@ move var@12 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15839,6 +16324,7 @@ move var@12 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15868,6 +16354,7 @@ move var@12 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15914,6 +16401,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15947,6 +16435,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -15976,6 +16465,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16021,6 +16511,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16054,6 +16545,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16083,6 +16575,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16127,6 +16620,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16160,6 +16654,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16189,6 +16684,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16222,6 +16718,7 @@ move var@15 1: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16263,6 +16760,7 @@ move var@15 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16296,6 +16794,7 @@ move var@15 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16325,6 +16824,7 @@ move var@15 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16367,6 +16867,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16400,6 +16901,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16429,6 +16931,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16470,6 +16973,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16503,6 +17007,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16532,6 +17037,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16572,6 +17078,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16605,6 +17112,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16634,6 +17142,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16667,6 +17176,7 @@ move var@18 0: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16704,6 +17214,7 @@ move var@18 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16737,6 +17248,7 @@ move var@18 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16766,6 +17278,7 @@ move var@18 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16804,6 +17317,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16837,6 +17351,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16866,6 +17381,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16903,6 +17419,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16950,6 +17467,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16975,6 +17493,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -16996,6 +17515,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17035,6 +17555,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17060,6 +17581,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17096,6 +17618,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17121,6 +17644,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17142,6 +17666,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17181,6 +17706,7 @@ move px ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17206,6 +17732,7 @@ move px ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17227,6 +17754,7 @@ move px [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17271,6 +17799,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17296,6 +17825,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17317,6 +17847,7 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17352,6 +17883,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17377,6 +17909,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17409,6 +17942,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17434,6 +17968,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17465,6 +18000,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17490,6 +18026,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17511,6 +18048,7 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17569,6 +18107,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17601,6 +18140,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17634,6 +18174,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17666,6 +18207,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17698,6 +18240,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17725,6 +18268,7 @@ move var@7 [Debug] ctx_pop_frame: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17753,6 +18297,7 @@ move var@7 [Debug] drop_value: place: var@2 [Debug] drop_value: place: x [Debug] ctx_pop_frame: after dropping local variables: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17779,6 +18324,7 @@ move var@7 [Debug] eval_operand: - ctx: +# Ended regions: {} # 2 frame(s) # Frame 0: @@ -17820,6 +18366,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17845,6 +18392,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17866,6 +18414,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17897,6 +18446,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17922,6 +18472,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17950,6 +18501,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -17975,6 +18527,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18002,6 +18555,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18027,6 +18581,7 @@ move var@0 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18048,6 +18603,7 @@ move var@0 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18078,6 +18634,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18103,6 +18660,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18124,6 +18682,7 @@ move var@9 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18151,6 +18710,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18178,6 +18738,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18193,6 +18754,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18204,6 +18766,7 @@ move var@9 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18221,6 +18784,7 @@ a ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -18240,13 +18804,14 @@ a ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; @@ -18260,13 +18825,14 @@ a ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; @@ -18276,13 +18842,14 @@ a [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; @@ -18293,7 +18860,7 @@ a copy x [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] **About to evaluate statement**: [ var@4 := copy y; @@ -18302,14 +18869,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18322,14 +18890,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18338,14 +18907,15 @@ proj_comp {} (s@0 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18355,7 +18925,7 @@ proj_comp {} (s@0 : u32) copy y [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ var@0 := copy var@3 + copy var@4; @@ -18363,15 +18933,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18383,15 +18954,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18399,15 +18971,16 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18416,18 +18989,19 @@ proj_comp {} (s@1 : u32) copy var@3 [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18436,22 +19010,23 @@ proj_comp {} (s@0 : u32) copy var@4 [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@2 : u32) ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + var@0 -> s@2 : u32 ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18467,13 +19042,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; @@ -18487,13 +19063,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; @@ -18503,13 +19080,14 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; @@ -18520,7 +19098,7 @@ proj_comp {} (s@1 : u32) copy x [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] **About to evaluate statement**: [ var@4 := copy y; @@ -18529,14 +19107,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18549,14 +19128,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18565,14 +19145,15 @@ proj_comp {} (s@0 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18582,7 +19163,7 @@ proj_comp {} (s@0 : u32) copy y [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ var@0 := copy var@3 - copy var@4; @@ -18590,15 +19171,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18610,15 +19192,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18626,15 +19209,16 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18643,18 +19227,19 @@ proj_comp {} (s@1 : u32) copy var@3 [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18663,22 +19248,23 @@ proj_comp {} (s@0 : u32) copy var@4 [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@2 : u32) ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + var@0 -> s@2 : u32 ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : (u32, bool) ; } @@ -18694,13 +19280,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -18714,13 +19301,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -18730,13 +19318,14 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -18747,7 +19336,7 @@ proj_comp {} (s@1 : u32) copy x [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] **About to evaluate statement**: [ var@4 := copy y; @@ -18756,14 +19345,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -18776,14 +19366,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -18792,14 +19383,15 @@ proj_comp {} (s@0 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -18809,7 +19401,7 @@ proj_comp {} (s@0 : u32) copy y [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ var@0 := move var@3 / move var@4; @@ -18817,15 +19409,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -18837,15 +19430,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -18853,15 +19447,16 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -18870,18 +19465,19 @@ proj_comp {} (s@1 : u32) move var@3 [Debug] Value to move: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -18890,20 +19486,21 @@ proj_comp {} (s@0 : u32) move var@4 [Debug] Value to move: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@2 : u32) ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + var@0 -> s@2 : u32 ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -18921,13 +19518,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -18941,13 +19539,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -18957,13 +19556,14 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -18974,7 +19574,7 @@ proj_comp {} (s@1 : u32) copy x [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] **About to evaluate statement**: [ var@4 := copy y; @@ -18983,14 +19583,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -19003,14 +19604,15 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -19019,14 +19621,15 @@ proj_comp {} (s@0 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; } @@ -19036,7 +19639,7 @@ proj_comp {} (s@0 : u32) copy y [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ var@0 := move var@3 % move var@4; @@ -19044,15 +19647,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -19064,15 +19668,16 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -19080,15 +19685,16 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@0 : u32) ; - var@4 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@0 : u32 ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -19097,18 +19703,19 @@ proj_comp {} (s@1 : u32) move var@3 [Debug] Value to move: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@1 : u32 ; var@5 -> ⊥ : bool ; } @@ -19117,20 +19724,21 @@ proj_comp {} (s@0 : u32) move var@4 [Debug] Value to move: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@2 : u32) ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + var@0 -> s@2 : u32 ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : bool ; @@ -19157,6 +19765,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19182,6 +19791,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19203,6 +19813,7 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19241,6 +19852,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19266,6 +19878,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19287,6 +19900,7 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19324,6 +19938,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19349,6 +19964,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19370,6 +19986,7 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19406,6 +20023,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19431,6 +20049,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19452,6 +20071,7 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19489,6 +20109,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19514,6 +20135,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19535,6 +20157,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19575,6 +20198,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19600,6 +20224,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19621,6 +20246,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19654,6 +20280,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19679,6 +20306,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19700,6 +20328,7 @@ ty: (Types.Adt ((Types.AdtId 0), [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19735,6 +20364,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19760,6 +20390,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19789,6 +20420,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19814,6 +20446,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19835,6 +20468,7 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19868,6 +20502,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19893,6 +20528,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19920,6 +20556,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19945,6 +20582,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19971,6 +20609,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -19996,6 +20635,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -20021,6 +20661,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -20056,13 +20697,14 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20076,13 +20718,14 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20092,13 +20735,14 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20109,7 +20753,7 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)])) copy x [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] **About to evaluate statement**: [ var@5 := copy y; @@ -20124,15 +20768,16 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; - var@4 -> proj_comp {} (s@0 : u32) ; + var@4 -> s@0 : u32 ; var@5 -> ⊥ : u32 ; } @@ -20144,15 +20789,16 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; - var@4 -> proj_comp {} (s@0 : u32) ; + var@4 -> s@0 : u32 ; var@5 -> ⊥ : u32 ; } @@ -20160,15 +20806,16 @@ proj_comp {} (s@0 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; - var@4 -> proj_comp {} (s@0 : u32) ; + var@4 -> s@0 : u32 ; var@5 -> ⊥ : u32 ; } @@ -20177,7 +20824,7 @@ proj_comp {} (s@0 : u32) copy y [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ var@3 := move var@4 >= move var@5; @@ -20191,16 +20838,17 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; } @@ -20211,32 +20859,34 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; } @@ -20244,19 +20894,20 @@ proj_comp {} (s@1 : u32) move var@4 [Debug] Value to move: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@5 -> s@1 : u32 ; } @@ -20264,7 +20915,7 @@ proj_comp {} (s@0 : u32) move var@5 [Debug] Value to move: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ if (move var@3) { @@ -20277,14 +20928,15 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@2 : bool) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@2 : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; } @@ -20302,14 +20954,15 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - var@3 -> proj_comp {} (s@2 : bool) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + var@3 -> s@2 : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; } @@ -20318,13 +20971,14 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> true ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20342,13 +20996,14 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20358,13 +21013,14 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20375,16 +21031,17 @@ true copy x [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> false ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20402,13 +21059,14 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20418,13 +21076,14 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : u32 ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20435,20 +21094,21 @@ false copy y [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@0 : u32) ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + var@0 -> s@0 : u32 ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20462,13 +21122,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@1 : u32) ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + var@0 -> s@1 : u32 ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; var@3 -> ⊥ : bool ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20492,6 +21153,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -20516,6 +21178,7 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -20536,6 +21199,7 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -20558,6 +21222,7 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -20592,12 +21257,13 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; y -> ⊥ : u32 ; z -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; @@ -20616,12 +21282,13 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; y -> ⊥ : u32 ; z -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; @@ -20636,12 +21303,13 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; y -> ⊥ : u32 ; z -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; @@ -20658,12 +21326,13 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; + x -> s@0 : u32 ; y -> ⊥ : u32 ; z -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; @@ -20691,13 +21360,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20715,13 +21385,14 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20735,13 +21406,14 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; var@4 -> ⊥ : u32 ; var@5 -> ⊥ : u32 ; @@ -20756,7 +21428,7 @@ proj_comp {} (s@1 : u32) copy x [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] **About to evaluate statement**: [ var@5 := copy y; @@ -20769,15 +21441,16 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@0 : u32) ; + var@4 -> s@0 : u32 ; var@5 -> ⊥ : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> ⊥ : bool ; @@ -20793,15 +21466,16 @@ proj_comp {} (s@0 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@0 : u32) ; + var@4 -> s@0 : u32 ; var@5 -> ⊥ : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> ⊥ : bool ; @@ -20813,15 +21487,16 @@ proj_comp {} (s@0 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@0 : u32) ; + var@4 -> s@0 : u32 ; var@5 -> ⊥ : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> ⊥ : bool ; @@ -20834,7 +21509,7 @@ proj_comp {} (s@0 : u32) copy y [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ z := copy var@4 + copy var@5; @@ -20846,16 +21521,17 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : bool ; @@ -20870,16 +21546,17 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : bool ; @@ -20890,16 +21567,17 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : bool ; @@ -20911,19 +21589,20 @@ proj_comp {} (s@1 : u32) copy var@4 [Debug] Value to copy: -proj_comp {} (s@0 : u32) +s@0 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; z -> ⊥ : u32 ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : bool ; @@ -20935,7 +21614,7 @@ proj_comp {} (s@0 : u32) copy var@5 [Debug] Value to copy: -proj_comp {} (s@1 : u32) +s@1 : u32 [Debug] **About to evaluate statement**: [ var@9 := copy z; @@ -20946,16 +21625,17 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 ; @@ -20970,16 +21650,17 @@ proj_comp {} (s@1 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 ; @@ -20990,16 +21671,17 @@ proj_comp {} (s@1 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 ; @@ -21011,7 +21693,7 @@ proj_comp {} (s@1 : u32) copy z [Debug] Value to copy: -proj_comp {} (s@2 : u32) +s@2 : u32 [Debug] **About to evaluate statement**: [ var@8 := move var@9 == 15: u32; @@ -21021,20 +21703,21 @@ proj_comp {} (s@2 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@2 : u32) ; + var@9 -> s@2 : u32 ; } @@ -21045,40 +21728,42 @@ proj_comp {} (s@2 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@2 : u32) ; + var@9 -> s@2 : u32 ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@2 : u32) ; + var@9 -> s@2 : u32 ; } @@ -21086,19 +21771,20 @@ proj_comp {} (s@2 : u32) move var@9 [Debug] Value to move: -proj_comp {} (s@2 : u32) +s@2 : u32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 ; @@ -21117,19 +21803,20 @@ proj_comp {} (s@2 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@3 : bool) ; + var@8 -> s@3 : bool ; var@9 -> ⊥ : u32 ; } @@ -21141,19 +21828,20 @@ proj_comp {} (s@2 : u32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@3 : bool) ; + var@8 -> s@3 : bool ; var@9 -> ⊥ : u32 ; } @@ -21161,19 +21849,20 @@ proj_comp {} (s@2 : u32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@3 : bool) ; + var@8 -> s@3 : bool ; var@9 -> ⊥ : u32 ; } @@ -21182,7 +21871,7 @@ proj_comp {} (s@2 : u32) move var@8 [Debug] Value to move: -proj_comp {} (s@3 : bool) +s@3 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@7); @@ -21190,18 +21879,19 @@ proj_comp {} (s@3 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@4 : bool) ; + var@7 -> s@4 : bool ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : u32 ; } @@ -21214,18 +21904,19 @@ proj_comp {} (s@3 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 -> proj_comp {} (s@4 : bool) ; + var@7 -> s@4 : bool ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : u32 ; } @@ -21234,16 +21925,17 @@ proj_comp {} (s@3 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + x -> s@0 : u32 ; + y -> s@1 : u32 ; + z -> s@2 : u32 ; + var@4 -> s@0 : u32 ; + var@5 -> s@1 : u32 ; var@6 -> ⊥ : (u32, bool) ; var@7 -> true ; var@8 -> ⊥ : bool ; @@ -21262,16 +21954,17 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {} (s@0 : u32) ; - y -> proj_comp {} (s@1 : u32) ; - z -> proj_comp {} (s@2 : u32) ; - var@4 -> proj_comp {} (s@0 : u32) ; - var@5 -> proj_comp {} (s@1 : u32) ; + 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 ; @@ -21291,12 +21984,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; var@2 -> ⊥ : i32 ; var@3 -> ⊥ : bool ; } @@ -21309,12 +22003,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; var@2 -> ⊥ : i32 ; var@3 -> ⊥ : bool ; } @@ -21323,12 +22018,13 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; var@2 -> ⊥ : i32 ; var@3 -> ⊥ : bool ; } @@ -21338,7 +22034,7 @@ true copy x [Debug] Value to copy: -proj_comp {} (s@0 : i32) +s@0 : i32 [Debug] **About to evaluate statement**: [ var@3 := copy var@2 == -2147483648: i32; @@ -21348,13 +22044,14 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> ⊥ : bool ; } @@ -21366,13 +22063,14 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> ⊥ : bool ; } @@ -21380,13 +22078,14 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> ⊥ : bool ; } @@ -21395,16 +22094,17 @@ proj_comp {} (s@0 : i32) copy var@2 [Debug] Value to copy: -proj_comp {} (s@0 : i32) +s@0 : i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> ⊥ : bool ; } @@ -21420,14 +22120,15 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; - var@3 -> proj_comp {} (s@1 : bool) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; + var@3 -> s@1 : bool ; } @@ -21438,27 +22139,29 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; - var@3 -> proj_comp {} (s@1 : bool) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; + var@3 -> s@1 : bool ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> true ; } @@ -21475,13 +22178,14 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> ⊥ : bool ; } @@ -21493,13 +22197,14 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> ⊥ : bool ; } @@ -21507,13 +22212,14 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; - var@2 -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; + var@2 -> s@0 : i32 ; var@3 -> ⊥ : bool ; } @@ -21522,19 +22228,20 @@ true move var@2 [Debug] Value to move: -proj_comp {} (s@0 : i32) +s@0 : i32 [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@2 : i32) ; - x -> proj_comp {} (s@0 : i32) ; + var@0 -> s@2 : i32 ; + x -> s@0 : i32 ; var@2 -> ⊥ : i32 ; var@3 -> ⊥ : bool ; } @@ -21550,6 +22257,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21567,6 +22275,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21580,6 +22289,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21600,6 +22310,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21617,6 +22328,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21630,6 +22342,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21649,6 +22362,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21675,6 +22389,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21696,6 +22411,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21713,6 +22429,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21743,6 +22460,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21764,6 +22482,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21791,6 +22510,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21812,6 +22532,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21838,6 +22559,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21859,6 +22581,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21876,6 +22599,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21903,6 +22627,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21924,6 +22649,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21941,6 +22667,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21969,6 +22696,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -21990,6 +22718,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22007,6 +22736,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22028,6 +22758,7 @@ move var@6 1: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22053,6 +22784,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22062,7 +22794,7 @@ move var@6 px -> ⊥ : &'_ mut (i32) ; ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@4 -> ⊥ : bool ; - var@5 -> proj_comp {} (s@0 : bool) ; + var@5 -> s@0 : bool ; var@6 -> ⊥ : i32 ; } @@ -22074,6 +22806,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22083,7 +22816,7 @@ move var@6 px -> ⊥ : &'_ mut (i32) ; ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@4 -> ⊥ : bool ; - var@5 -> proj_comp {} (s@0 : bool) ; + var@5 -> s@0 : bool ; var@6 -> ⊥ : i32 ; } @@ -22091,6 +22824,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22100,7 +22834,7 @@ move var@6 px -> ⊥ : &'_ mut (i32) ; ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@4 -> ⊥ : bool ; - var@5 -> proj_comp {} (s@0 : bool) ; + var@5 -> s@0 : bool ; var@6 -> ⊥ : i32 ; } @@ -22109,7 +22843,7 @@ move var@6 move var@5 [Debug] Value to move: -proj_comp {} (s@0 : bool) +s@0 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@4); @@ -22117,6 +22851,7 @@ proj_comp {} (s@0 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22125,7 +22860,7 @@ proj_comp {} (s@0 : bool) x -> 1: i32 ; px -> ⊥ : &'_ mut (i32) ; ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> proj_comp {} (s@1 : bool) ; + var@4 -> s@1 : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : i32 ; } @@ -22138,6 +22873,7 @@ proj_comp {} (s@0 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22146,7 +22882,7 @@ proj_comp {} (s@0 : bool) x -> 1: i32 ; px -> ⊥ : &'_ mut (i32) ; ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; - var@4 -> proj_comp {} (s@1 : bool) ; + var@4 -> s@1 : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : i32 ; } @@ -22155,6 +22891,7 @@ proj_comp {} (s@0 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22180,6 +22917,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22226,6 +22964,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22259,6 +22998,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22288,6 +23028,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22346,6 +23087,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22379,6 +23121,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22408,6 +23151,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22465,6 +23209,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22498,6 +23243,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22552,6 +23298,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22585,6 +23332,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22638,6 +23386,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22671,6 +23420,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22723,6 +23473,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22756,6 +23507,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22807,6 +23559,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22840,6 +23593,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22869,6 +23623,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22923,6 +23678,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22956,6 +23712,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -22985,6 +23742,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23036,6 +23794,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23069,6 +23828,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23098,6 +23858,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23150,6 +23911,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23183,6 +23945,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23212,6 +23975,7 @@ copy *(px) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23245,6 +24009,7 @@ move var@9 2: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23294,6 +24059,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23306,7 +24072,7 @@ move var@9 ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> ⊥ : bool ; - var@8 -> proj_comp {} (s@0 : bool) ; + var@8 -> s@0 : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -23327,6 +24093,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23339,7 +24106,7 @@ move var@9 ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> ⊥ : bool ; - var@8 -> proj_comp {} (s@0 : bool) ; + var@8 -> s@0 : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -23356,6 +24123,7 @@ move var@9 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23368,7 +24136,7 @@ move var@9 ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> ⊥ : bool ; - var@8 -> proj_comp {} (s@0 : bool) ; + var@8 -> s@0 : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -23386,7 +24154,7 @@ move var@9 move var@8 [Debug] Value to move: -proj_comp {} (s@0 : bool) +s@0 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@7); @@ -23406,6 +24174,7 @@ proj_comp {} (s@0 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23417,7 +24186,7 @@ proj_comp {} (s@0 : bool) py -> &mut@1 (⌊mut@3⌋) ; ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> proj_comp {} (s@1 : bool) ; + var@7 -> s@1 : bool ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; @@ -23439,6 +24208,7 @@ proj_comp {} (s@0 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23450,7 +24220,7 @@ proj_comp {} (s@0 : bool) py -> &mut@1 (⌊mut@3⌋) ; ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ; var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> proj_comp {} (s@1 : bool) ; + var@7 -> s@1 : bool ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; @@ -23468,6 +24238,7 @@ proj_comp {} (s@0 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23517,6 +24288,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23550,6 +24322,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23579,6 +24352,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23627,6 +24401,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23660,6 +24435,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23689,6 +24465,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23722,6 +24499,7 @@ move var@12 0: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23767,6 +24545,7 @@ move var@12 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23782,7 +24561,7 @@ move var@12 var@8 -> ⊥ : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; - var@11 -> proj_comp {} (s@2 : bool) ; + var@11 -> s@2 : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -23800,6 +24579,7 @@ move var@12 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23815,7 +24595,7 @@ move var@12 var@8 -> ⊥ : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; - var@11 -> proj_comp {} (s@2 : bool) ; + var@11 -> s@2 : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -23829,6 +24609,7 @@ move var@12 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23844,7 +24625,7 @@ move var@12 var@8 -> ⊥ : bool ; var@9 -> ⊥ : i32 ; var@10 -> ⊥ : bool ; - var@11 -> proj_comp {} (s@2 : bool) ; + var@11 -> s@2 : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -23859,7 +24640,7 @@ move var@12 move var@11 [Debug] Value to move: -proj_comp {} (s@2 : bool) +s@2 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@10); @@ -23875,6 +24656,7 @@ proj_comp {} (s@2 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23889,7 +24671,7 @@ proj_comp {} (s@2 : bool) var@7 -> ⊥ : bool ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : i32 ; - var@10 -> proj_comp {} (s@3 : bool) ; + var@10 -> s@3 : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -23908,6 +24690,7 @@ proj_comp {} (s@2 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23922,7 +24705,7 @@ proj_comp {} (s@2 : bool) var@7 -> ⊥ : bool ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : i32 ; - var@10 -> proj_comp {} (s@3 : bool) ; + var@10 -> s@3 : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -23937,6 +24720,7 @@ proj_comp {} (s@2 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -23982,6 +24766,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24015,6 +24800,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24044,6 +24830,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24088,6 +24875,7 @@ copy *(py) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24121,6 +24909,7 @@ copy *(py) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24150,6 +24939,7 @@ copy *(py) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24183,6 +24973,7 @@ move var@15 2: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24224,6 +25015,7 @@ move var@15 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24242,7 +25034,7 @@ move var@15 var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; - var@14 -> proj_comp {} (s@4 : bool) ; + var@14 -> s@4 : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; @@ -24257,6 +25049,7 @@ move var@15 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24275,7 +25068,7 @@ move var@15 var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; - var@14 -> proj_comp {} (s@4 : bool) ; + var@14 -> s@4 : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; @@ -24286,6 +25079,7 @@ move var@15 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24304,7 +25098,7 @@ move var@15 var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; - var@14 -> proj_comp {} (s@4 : bool) ; + var@14 -> s@4 : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; @@ -24316,7 +25110,7 @@ move var@15 move var@14 [Debug] Value to move: -proj_comp {} (s@4 : bool) +s@4 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@13); @@ -24328,6 +25122,7 @@ proj_comp {} (s@4 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24345,7 +25140,7 @@ proj_comp {} (s@4 : bool) var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; - var@13 -> proj_comp {} (s@5 : bool) ; + var@13 -> s@5 : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; @@ -24361,6 +25156,7 @@ proj_comp {} (s@4 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24378,7 +25174,7 @@ proj_comp {} (s@4 : bool) var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; - var@13 -> proj_comp {} (s@5 : bool) ; + var@13 -> s@5 : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; @@ -24390,6 +25186,7 @@ proj_comp {} (s@4 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24431,6 +25228,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24464,6 +25262,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24493,6 +25292,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24533,6 +25333,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24566,6 +25367,7 @@ copy y ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24595,6 +25397,7 @@ copy y [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24628,6 +25431,7 @@ move var@18 2: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24665,6 +25469,7 @@ move var@18 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24686,7 +25491,7 @@ move var@18 var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; - var@17 -> proj_comp {} (s@6 : bool) ; + var@17 -> s@6 : bool ; var@18 -> ⊥ : i32 ; } @@ -24698,6 +25503,7 @@ move var@18 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24719,7 +25525,7 @@ move var@18 var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; - var@17 -> proj_comp {} (s@6 : bool) ; + var@17 -> s@6 : bool ; var@18 -> ⊥ : i32 ; } @@ -24727,6 +25533,7 @@ move var@18 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24748,7 +25555,7 @@ move var@18 var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; - var@17 -> proj_comp {} (s@6 : bool) ; + var@17 -> s@6 : bool ; var@18 -> ⊥ : i32 ; } @@ -24757,7 +25564,7 @@ move var@18 move var@17 [Debug] Value to move: -proj_comp {} (s@6 : bool) +s@6 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@16); @@ -24765,6 +25572,7 @@ proj_comp {} (s@6 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24785,7 +25593,7 @@ proj_comp {} (s@6 : bool) var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; - var@16 -> proj_comp {} (s@7 : bool) ; + var@16 -> s@7 : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; } @@ -24798,6 +25606,7 @@ proj_comp {} (s@6 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24818,7 +25627,7 @@ proj_comp {} (s@6 : bool) var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; - var@16 -> proj_comp {} (s@7 : bool) ; + var@16 -> s@7 : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; } @@ -24827,6 +25636,7 @@ proj_comp {} (s@6 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24864,6 +25674,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24904,6 +25715,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24922,6 +25734,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24945,6 +25758,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24963,6 +25777,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -24982,6 +25797,7 @@ true - dest: var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -25008,13 +25824,14 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25026,13 +25843,14 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25040,13 +25858,14 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25066,13 +25885,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25084,13 +25904,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25098,13 +25919,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [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 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25113,7 +25935,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) move var@2 [Debug] Value to move: -proj_comp {} (s@0 : std::boxed::Box>) +s@0 : std::boxed::Box> [Debug] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -25122,12 +25944,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25140,12 +25963,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25159,12 +25983,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25177,12 +26002,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; } @@ -25196,6 +26022,7 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -25226,6 +26053,7 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -25249,6 +26077,7 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -25273,6 +26102,7 @@ proj_comp {} (s@0 : std::boxed::Box>) - dest: b [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -25308,12 +26138,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> proj_comp {} (s@0 : std::boxed::Box) ; + b -> s@0 : std::boxed::Box ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; @@ -25331,12 +26162,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> proj_comp {} (s@0 : std::boxed::Box) ; + b -> s@0 : std::boxed::Box ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; @@ -25363,12 +26195,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({0}, proj_comp {} (s@0 : std::boxed::Box)) ; + b -> @shared_loan({0}, s@0 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⌊inactivated_mut@0⌋ ; x -> ⊥ : &'_ (i32) ; @@ -25386,12 +26219,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({0}, proj_comp {} (s@0 : std::boxed::Box)) ; + b -> @shared_loan({0}, s@0 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⌊inactivated_mut@0⌋ ; x -> ⊥ : &'_ (i32) ; @@ -25410,12 +26244,13 @@ proj_comp {} (s@0 : std::boxed::Box>) - dest: x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({0}, proj_comp {} (s@0 : std::boxed::Box)) ; + b -> @shared_loan({0}, s@0 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⌊inactivated_mut@0⌋ ; x -> ⊥ : &'_ (i32) ; @@ -25432,17 +26267,15 @@ move var@3 [Debug] activate_inactivated_mut_borrow: resulting value: { Values.value = (Values.Symbolic - { Values.svalue = - { Values.sv_id = 0; - sv_ty = - (Types.Adt ((Types.Assumed Types.Box), [], - [(Types.Integer Types.I32)])) - }; - rset_ended = {} }); + { 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] Value to move: -&mut@0 (proj_comp {} (s@0 : std::boxed::Box)) +&mut@0 (s@0 : std::boxed::Box) [Debug] **About to evaluate statement**: [ *(x) := 1: i32; @@ -25457,13 +26290,14 @@ move var@3 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; b -> ⌊mut@0⌋ ; - x -> proj_comp {} (s@1 : &r@0 mut (i32)) ; + x -> s@1 : &r@0 mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; var@5 -> ⊥ : &'_ (std::boxed::Box) ; @@ -25484,13 +26318,14 @@ move var@3 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; b -> ⌊mut@0⌋ ; - x -> proj_comp {} (s@1 : &r@0 mut (i32)) ; + x -> s@1 : &r@0 mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; var@5 -> ⊥ : &'_ (std::boxed::Box) ; @@ -25507,13 +26342,14 @@ move var@3 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; b -> ⌊mut@0⌋ ; - x -> proj_comp {} (s@1 : &r@0 mut (i32)) ; + x -> s@1 : &r@0 mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; var@5 -> ⊥ : &'_ (std::boxed::Box) ; @@ -25543,6 +26379,7 @@ move var@3 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -25570,6 +26407,7 @@ move var@3 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -25603,12 +26441,13 @@ move var@3 ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; @@ -25626,12 +26465,13 @@ move var@3 ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; @@ -25650,12 +26490,13 @@ move var@3 - dest: x [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⊥ : &'_ (i32) ; @@ -25682,15 +26523,16 @@ move var@5 ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> proj_comp {} (s@4 : &r@1 (i32)) ; + x -> s@4 : &r@1 (i32) ; var@5 -> ⊥ : &'_ (std::boxed::Box) ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; @@ -25709,15 +26551,16 @@ move var@5 ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> proj_comp {} (s@4 : &r@1 (i32)) ; + x -> s@4 : &r@1 (i32) ; var@5 -> ⊥ : &'_ (std::boxed::Box) ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; @@ -25732,15 +26575,16 @@ move var@5 [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> proj_comp {} (s@4 : &r@1 (i32)) ; + x -> s@4 : &r@1 (i32) ; var@5 -> ⊥ : &'_ (std::boxed::Box) ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : bool ; @@ -25756,7 +26600,7 @@ move var@5 copy *(x) [Debug] Value to copy: -proj_comp {} (s@5 : i32) +s@5 : i32 [Debug] **About to evaluate statement**: [ var@7 := move var@8 == 1: i32; @@ -25767,22 +26611,23 @@ proj_comp {} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@5 : i32) ; + var@8 -> s@5 : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25794,22 +26639,23 @@ proj_comp {} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@5 : i32) ; + var@8 -> s@5 : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25817,22 +26663,23 @@ proj_comp {} (s@5 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@5 : i32) ; + var@8 -> s@5 : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25841,15 +26688,16 @@ proj_comp {} (s@5 : i32) move var@8 [Debug] Value to move: -proj_comp {} (s@5 : i32) +s@5 : i32 [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⌊shared@3⌋ ; @@ -25859,7 +26707,7 @@ proj_comp {} (s@5 : i32) var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25876,22 +26724,23 @@ proj_comp {} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@6 : bool) ; + var@7 -> s@6 : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25903,22 +26752,23 @@ proj_comp {} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@6 : bool) ; + var@7 -> s@6 : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25926,22 +26776,23 @@ proj_comp {} (s@5 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@6 : bool) ; + var@7 -> s@6 : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25950,7 +26801,7 @@ proj_comp {} (s@5 : i32) move var@7 [Debug] Value to move: -proj_comp {} (s@6 : bool) +s@6 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@6); @@ -25959,22 +26810,23 @@ proj_comp {} (s@6 : bool) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@7 : bool) ; + var@6 -> s@7 : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -25986,22 +26838,23 @@ proj_comp {} (s@6 : bool) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + 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 -> proj_comp {} (s@7 : bool) ; + var@6 -> s@7 : bool ; var@7 -> ⊥ : bool ; var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -26009,12 +26862,13 @@ proj_comp {} (s@6 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⌊shared@3⌋ ; @@ -26024,7 +26878,7 @@ proj_comp {} (s@6 : bool) var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -26041,12 +26895,13 @@ true ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⌊shared@3⌋ ; @@ -26056,7 +26911,7 @@ true var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -26068,12 +26923,13 @@ true ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - b -> @shared_loan({2}, proj_comp {0} (s@3 : std::boxed::Box)) ; + b -> @shared_loan({2}, s@3 : std::boxed::Box) ; x -> ⊥ : &'_ mut (i32) ; var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; x -> ⌊shared@3⌋ ; @@ -26083,7 +26939,7 @@ true var@8 -> ⊥ : i32 ; abs@1{parents={}}{regions={1}} { ⌊shared@2⌋, - @shared_loan({3}, proj_comp {} (s@5 : i32), proj_loans (s@5 : i32)) + @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32)) } } @@ -26096,6 +26952,7 @@ true ] **Context**: +# Ended regions: {0, 1} # 1 frame(s) # Frame 0: @@ -26121,12 +26978,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; } @@ -26137,24 +26995,26 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : i32 ; - x -> proj_comp {} (s@0 : i32) ; + x -> s@0 : i32 ; } @@ -26162,19 +27022,20 @@ true copy x [Debug] Value to copy: -proj_comp {} (s@0 : i32) +s@0 : i32 [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@0 : i32) ; - x -> proj_comp {} (s@0 : i32) ; + var@0 -> s@0 : i32 ; + x -> s@0 : i32 ; } @@ -26195,6 +27056,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26218,6 +27080,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26237,6 +27100,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26270,6 +27134,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26293,6 +27158,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26323,6 +27189,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26346,6 +27213,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26365,6 +27233,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26398,6 +27267,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26421,6 +27291,7 @@ copy x ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26440,6 +27311,7 @@ copy x [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26472,6 +27344,7 @@ move var@4 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26479,7 +27352,7 @@ move var@4 var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; @@ -26495,6 +27368,7 @@ move var@4 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26502,7 +27376,7 @@ move var@4 var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; @@ -26514,6 +27388,7 @@ move var@4 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26521,7 +27396,7 @@ move var@4 var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; @@ -26545,6 +27420,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26552,7 +27428,7 @@ copy *(px) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; @@ -26568,6 +27444,7 @@ copy *(px) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26575,7 +27452,7 @@ copy *(px) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; @@ -26587,6 +27464,7 @@ copy *(px) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26594,7 +27472,7 @@ copy *(px) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; @@ -26607,7 +27485,7 @@ copy *(px) copy y [Debug] Value to copy: -proj_comp {} (s@0 : i32) +s@0 : i32 [Debug] **About to evaluate statement**: [ var@6 := move var@7 == move var@8; @@ -26617,6 +27495,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26624,12 +27503,12 @@ proj_comp {} (s@0 : i32) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; var@7 -> 0: i32 ; - var@8 -> proj_comp {} (s@0 : i32) ; + var@8 -> s@0 : i32 ; } @@ -26640,6 +27519,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26647,18 +27527,19 @@ proj_comp {} (s@0 : i32) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; var@7 -> 0: i32 ; - var@8 -> proj_comp {} (s@0 : i32) ; + var@8 -> s@0 : i32 ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26666,12 +27547,12 @@ proj_comp {} (s@0 : i32) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; var@7 -> 0: i32 ; - var@8 -> proj_comp {} (s@0 : i32) ; + var@8 -> s@0 : i32 ; } @@ -26682,6 +27563,7 @@ move var@7 0: i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26689,12 +27571,12 @@ move var@7 var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : i32 ; - var@8 -> proj_comp {} (s@0 : i32) ; + var@8 -> s@0 : i32 ; } @@ -26702,7 +27584,7 @@ move var@7 move var@8 [Debug] Value to move: -proj_comp {} (s@0 : i32) +s@0 : i32 [Debug] **About to evaluate statement**: [ var@5 := ¬ move var@6; @@ -26711,6 +27593,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26718,10 +27601,10 @@ proj_comp {} (s@0 : i32) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; - var@6 -> proj_comp {} (s@1 : bool) ; + var@6 -> s@1 : bool ; var@7 -> ⊥ : i32 ; var@8 -> ⊥ : i32 ; } @@ -26734,6 +27617,7 @@ proj_comp {} (s@0 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26741,10 +27625,10 @@ proj_comp {} (s@0 : i32) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; - var@6 -> proj_comp {} (s@1 : bool) ; + var@6 -> s@1 : bool ; var@7 -> ⊥ : i32 ; var@8 -> ⊥ : i32 ; } @@ -26753,6 +27637,7 @@ proj_comp {} (s@0 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26760,10 +27645,10 @@ proj_comp {} (s@0 : i32) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; - var@6 -> proj_comp {} (s@1 : bool) ; + var@6 -> s@1 : bool ; var@7 -> ⊥ : i32 ; var@8 -> ⊥ : i32 ; } @@ -26773,7 +27658,7 @@ proj_comp {} (s@0 : i32) move var@6 [Debug] Value to move: -proj_comp {} (s@1 : bool) +s@1 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@5); @@ -26781,6 +27666,7 @@ proj_comp {} (s@1 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26788,9 +27674,9 @@ proj_comp {} (s@1 : bool) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; - var@5 -> proj_comp {} (s@2 : bool) ; + var@5 -> s@2 : bool ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : i32 ; var@8 -> ⊥ : i32 ; @@ -26804,6 +27690,7 @@ proj_comp {} (s@1 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26811,9 +27698,9 @@ proj_comp {} (s@1 : bool) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; - var@5 -> proj_comp {} (s@2 : bool) ; + var@5 -> s@2 : bool ; var@6 -> ⊥ : bool ; var@7 -> ⊥ : i32 ; var@8 -> ⊥ : i32 ; @@ -26823,6 +27710,7 @@ proj_comp {} (s@1 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26830,7 +27718,7 @@ proj_comp {} (s@1 : bool) var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> true ; var@6 -> ⊥ : bool ; @@ -26850,6 +27738,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26857,7 +27746,7 @@ true var@0 -> ⊥ : () ; x -> @shared_loan({0}, 0: i32) ; px -> ⌊shared@0⌋ ; - y -> proj_comp {} (s@0 : i32) ; + y -> s@0 : i32 ; var@4 -> ⊥ : i32 ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : bool ; @@ -26886,6 +27775,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26894,7 +27784,7 @@ true proj_loans (s@0 : &r@0 (test1::List)) } var@0 -> ⊥ : bool ; - l -> proj_comp {} (s@0 : &r@0 (test1::List)) ; + l -> s@0 : &r@0 (test1::List) ; var@2 -> ⊥ : isize ; } @@ -26906,6 +27796,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -26914,7 +27805,7 @@ true proj_loans (s@0 : &r@0 (test1::List)) } var@0 -> ⊥ : bool ; - l -> proj_comp {} (s@0 : &r@0 (test1::List)) ; + l -> s@0 : &r@0 (test1::List) ; var@2 -> ⊥ : isize ; } @@ -26937,12 +27828,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (s@3 : std::boxed::Box>); }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) + @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⌋ ; @@ -26967,12 +27859,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (s@3 : std::boxed::Box>); }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) + @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⌋ ; @@ -26983,12 +27876,13 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (s@3 : std::boxed::Box>); }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) + @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⌋ ; @@ -27007,12 +27901,13 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (s@3 : std::boxed::Box>); }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) + @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⌋ ; @@ -27023,12 +27918,13 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (s@3 : std::boxed::Box>); }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) + @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⌋ ; @@ -27045,12 +27941,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { abs@0{parents={}}{regions={0}} { - @shared_loan({0}, test1::List::Cons { 0 = proj_comp {} (s@2 : T); 1 = proj_comp {} (s@3 : std::boxed::Box>); }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box>); }) + @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⌋ ; @@ -27076,6 +27973,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27106,6 +28004,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27122,6 +28021,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27146,6 +28046,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27162,6 +28063,7 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27184,6 +28086,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27216,6 +28119,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27238,6 +28142,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27270,6 +28175,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27292,6 +28198,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27315,6 +28222,7 @@ false - dest: var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -27350,13 +28258,14 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; @@ -27372,13 +28281,14 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; @@ -27390,13 +28300,14 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; @@ -27425,13 +28336,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; @@ -27447,13 +28359,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; @@ -27465,13 +28378,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [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 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; var@4 -> ⊥ : bool ; var@5 -> ⊥ : bool ; @@ -27484,7 +28398,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) move var@2 [Debug] Value to move: -proj_comp {} (s@0 : std::boxed::Box>) +s@0 : std::boxed::Box> [Debug] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -27498,12 +28412,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + 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 ; @@ -27520,12 +28435,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + 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 ; @@ -27548,12 +28464,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + 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 ; @@ -27570,12 +28487,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + 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 ; @@ -27597,12 +28515,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27619,12 +28538,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27637,12 +28557,13 @@ proj_comp {} (s@0 : std::boxed::Box>) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27667,12 +28588,13 @@ copy var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27689,12 +28611,13 @@ copy var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27707,12 +28630,13 @@ copy var@7 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27736,16 +28660,17 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 -> proj_comp {} (s@1 : bool) ; + var@5 -> s@1 : bool ; var@6 -> ⊥ : &'_ (test1::List) ; var@7 -> ⌊shared@0⌋ ; abs@0{parents={}}{regions={0}} { @@ -27762,16 +28687,17 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 -> proj_comp {} (s@1 : bool) ; + var@5 -> s@1 : bool ; var@6 -> ⊥ : &'_ (test1::List) ; var@7 -> ⌊shared@0⌋ ; abs@0{parents={}}{regions={0}} { @@ -27784,16 +28710,17 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 -> proj_comp {} (s@1 : bool) ; + var@5 -> s@1 : bool ; var@6 -> ⊥ : &'_ (test1::List) ; var@7 -> ⌊shared@0⌋ ; abs@0{parents={}}{regions={0}} { @@ -27807,7 +28734,7 @@ move var@6 move var@5 [Debug] Value to move: -proj_comp {} (s@1 : bool) +s@1 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@4); @@ -27816,15 +28743,16 @@ proj_comp {} (s@1 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 -> proj_comp {} (s@2 : bool) ; + var@4 -> s@2 : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List) ; var@7 -> ⌊shared@0⌋ ; @@ -27842,15 +28770,16 @@ proj_comp {} (s@1 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 -> proj_comp {} (s@2 : bool) ; + var@4 -> s@2 : bool ; var@5 -> ⊥ : bool ; var@6 -> ⊥ : &'_ (test1::List) ; var@7 -> ⌊shared@0⌋ ; @@ -27864,12 +28793,13 @@ proj_comp {} (s@1 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 -> true ; @@ -27895,12 +28825,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27921,12 +28852,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); }) ; + 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 ; @@ -27948,6 +28880,7 @@ true ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: @@ -27992,12 +28925,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28017,12 +28951,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28038,12 +28973,13 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28085,12 +29021,13 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28110,12 +29047,13 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28131,12 +29069,13 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28177,12 +29116,13 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28202,12 +29142,13 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28223,12 +29164,13 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28268,12 +29210,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28293,12 +29236,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28314,12 +29258,13 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28358,12 +29303,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28383,12 +29329,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> proj_comp {} (s@0 : test1::List) ; + l -> s@0 : test1::List ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28424,12 +29371,13 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> 0: isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28445,12 +29393,13 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> 0: isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28483,12 +29432,13 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28508,12 +29458,13 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28529,12 +29480,13 @@ move var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28564,12 +29516,13 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28589,12 +29542,13 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28610,12 +29564,13 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = proj_comp {} (s@1 : T); 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> ⊥ : std::boxed::Box> ; @@ -28632,7 +29587,7 @@ false move (l as test1::List::Cons).0 [Debug] Value to move: -proj_comp {} (s@1 : T) +s@1 : T [Debug] **About to evaluate statement**: [ var@7 := false; @@ -28646,14 +29601,15 @@ proj_comp {} (s@1 : T) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; + hd -> s@1 : T ; tl -> ⊥ : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; @@ -28671,14 +29627,15 @@ proj_comp {} (s@1 : T) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; + hd -> s@1 : T ; tl -> ⊥ : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; @@ -28692,14 +29649,15 @@ proj_comp {} (s@1 : T) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; + hd -> s@1 : T ; tl -> ⊥ : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; @@ -28725,14 +29683,15 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; + hd -> s@1 : T ; tl -> ⊥ : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; @@ -28750,14 +29709,15 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; + hd -> s@1 : T ; tl -> ⊥ : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; @@ -28771,14 +29731,15 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : (T, test1::List) ; - l -> test1::List::Cons { 0 = ⊥ : T; 1 = proj_comp {} (s@2 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; + hd -> s@1 : T ; tl -> ⊥ : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; @@ -28793,7 +29754,7 @@ false move (l as test1::List::Cons).1 [Debug] Value to move: -proj_comp {} (s@2 : std::boxed::Box>) +s@2 : std::boxed::Box> [Debug] **About to evaluate statement**: [ var@5 := move hd; @@ -28805,6 +29766,7 @@ proj_comp {} (s@2 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28812,8 +29774,8 @@ proj_comp {} (s@2 : std::boxed::Box>) var@0 -> ⊥ : (T, test1::List) ; l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; - tl -> proj_comp {} (s@2 : std::boxed::Box>) ; + hd -> s@1 : T ; + tl -> s@2 : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; var@7 -> false ; @@ -28830,6 +29792,7 @@ proj_comp {} (s@2 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28837,8 +29800,8 @@ proj_comp {} (s@2 : std::boxed::Box>) var@0 -> ⊥ : (T, test1::List) ; l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; - tl -> proj_comp {} (s@2 : std::boxed::Box>) ; + hd -> s@1 : T ; + tl -> s@2 : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; var@7 -> false ; @@ -28851,6 +29814,7 @@ proj_comp {} (s@2 : std::boxed::Box>) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28858,8 +29822,8 @@ proj_comp {} (s@2 : std::boxed::Box>) var@0 -> ⊥ : (T, test1::List) ; l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; - hd -> proj_comp {} (s@1 : T) ; - tl -> proj_comp {} (s@2 : std::boxed::Box>) ; + hd -> s@1 : T ; + tl -> s@2 : std::boxed::Box> ; var@5 -> ⊥ : T ; var@6 -> ⊥ : test1::List ; var@7 -> false ; @@ -28873,7 +29837,7 @@ proj_comp {} (s@2 : std::boxed::Box>) move hd [Debug] Value to move: -proj_comp {} (s@1 : T) +s@1 : T [Debug] **About to evaluate statement**: [ var@6 := move deref_box(tl); @@ -28884,6 +29848,7 @@ proj_comp {} (s@1 : T) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28892,8 +29857,8 @@ proj_comp {} (s@1 : T) l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; - tl -> proj_comp {} (s@2 : std::boxed::Box>) ; - var@5 -> proj_comp {} (s@1 : T) ; + tl -> s@2 : std::boxed::Box> ; + var@5 -> s@1 : T ; var@6 -> ⊥ : test1::List ; var@7 -> false ; var@8 -> false ; @@ -28909,6 +29874,7 @@ proj_comp {} (s@1 : T) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28917,8 +29883,8 @@ proj_comp {} (s@1 : T) l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; - tl -> proj_comp {} (s@2 : std::boxed::Box>) ; - var@5 -> proj_comp {} (s@1 : T) ; + tl -> s@2 : std::boxed::Box> ; + var@5 -> s@1 : T ; var@6 -> ⊥ : test1::List ; var@7 -> false ; var@8 -> false ; @@ -28930,6 +29896,7 @@ proj_comp {} (s@1 : T) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28938,8 +29905,8 @@ proj_comp {} (s@1 : T) l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; - tl -> proj_comp {} (s@2 : std::boxed::Box>) ; - var@5 -> proj_comp {} (s@1 : T) ; + tl -> s@2 : std::boxed::Box> ; + var@5 -> s@1 : T ; var@6 -> ⊥ : test1::List ; var@7 -> false ; var@8 -> false ; @@ -28952,7 +29919,7 @@ proj_comp {} (s@1 : T) move deref_box(tl) [Debug] Value to move: -proj_comp {} (s@3 : test1::List) +s@3 : test1::List [Debug] **About to evaluate statement**: [ (var@0).0 := move var@5; @@ -28962,6 +29929,7 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28971,8 +29939,8 @@ proj_comp {} (s@3 : test1::List) var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> @Box(⊥ : test1::List) ; - var@5 -> proj_comp {} (s@1 : T) ; - var@6 -> proj_comp {} (s@3 : test1::List) ; + var@5 -> s@1 : T ; + var@6 -> s@3 : test1::List ; var@7 -> false ; var@8 -> false ; var@9 -> ⊥ : () ; @@ -28987,6 +29955,7 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -28996,8 +29965,8 @@ proj_comp {} (s@3 : test1::List) var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> @Box(⊥ : test1::List) ; - var@5 -> proj_comp {} (s@1 : T) ; - var@6 -> proj_comp {} (s@3 : test1::List) ; + var@5 -> s@1 : T ; + var@6 -> s@3 : test1::List ; var@7 -> false ; var@8 -> false ; var@9 -> ⊥ : () ; @@ -29008,6 +29977,7 @@ proj_comp {} (s@3 : test1::List) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29017,8 +29987,8 @@ proj_comp {} (s@3 : test1::List) var@2 -> ⊥ : isize ; hd -> ⊥ : T ; tl -> @Box(⊥ : test1::List) ; - var@5 -> proj_comp {} (s@1 : T) ; - var@6 -> proj_comp {} (s@3 : test1::List) ; + var@5 -> s@1 : T ; + var@6 -> s@3 : test1::List ; var@7 -> false ; var@8 -> false ; var@9 -> ⊥ : () ; @@ -29030,7 +30000,7 @@ proj_comp {} (s@3 : test1::List) move var@5 [Debug] Value to move: -proj_comp {} (s@1 : T) +s@1 : T [Debug] expand_bottom_value_from_projection: pe: (Expressions.Field ((Expressions.ProjTuple 2), 0)) ty: (Types.Adt (Types.Tuple, [], @@ -29045,17 +30015,18 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (proj_comp {} (s@1 : T), ⊥ : test1::List) ; + 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 -> proj_comp {} (s@3 : test1::List) ; + var@6 -> s@3 : test1::List ; var@7 -> false ; var@8 -> false ; var@9 -> ⊥ : () ; @@ -29070,17 +30041,18 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (proj_comp {} (s@1 : T), ⊥ : test1::List) ; + 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 -> proj_comp {} (s@3 : test1::List) ; + var@6 -> s@3 : test1::List ; var@7 -> false ; var@8 -> false ; var@9 -> ⊥ : () ; @@ -29091,17 +30063,18 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (proj_comp {} (s@1 : T), ⊥ : test1::List) ; + 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 -> proj_comp {} (s@3 : test1::List) ; + var@6 -> s@3 : test1::List ; var@7 -> false ; var@8 -> false ; var@9 -> ⊥ : () ; @@ -29113,7 +30086,7 @@ ty: (Types.Adt (Types.Tuple, [], move var@6 [Debug] Value to move: -proj_comp {} (s@3 : test1::List) +s@3 : test1::List [Debug] **About to evaluate statement**: [ var@9 := move alloc::alloc::box_free>(move tl); @@ -29121,11 +30094,12 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (proj_comp {} (s@1 : T), proj_comp {} (s@3 : test1::List)) ; + var@0 -> (s@1 : T, s@3 : test1::List) ; l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; @@ -29146,11 +30120,12 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (proj_comp {} (s@1 : T), proj_comp {} (s@3 : test1::List)) ; + var@0 -> (s@1 : T, s@3 : test1::List) ; l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; @@ -29177,11 +30152,12 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> (proj_comp {} (s@1 : T), proj_comp {} (s@3 : test1::List)) ; + var@0 -> (s@1 : T, s@3 : test1::List) ; l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box>; } ; var@2 -> ⊥ : isize ; hd -> ⊥ : T ; @@ -29218,6 +30194,7 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29239,6 +30216,7 @@ proj_comp {} (s@3 : test1::List) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29268,6 +30246,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29308,6 +30287,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29333,6 +30313,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29371,6 +30352,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29396,6 +30378,7 @@ move var@2 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29422,6 +30405,7 @@ move var@2 - dest: var@2 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29463,13 +30447,14 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; @@ -29488,13 +30473,14 @@ test1::List::Nil ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; @@ -29509,13 +30495,14 @@ test1::List::Nil [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> ⊥ : test1::List ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; @@ -29550,13 +30537,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; @@ -29575,13 +30563,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box>; } ; - var@2 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; @@ -29596,13 +30585,14 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) [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 -> proj_comp {} (s@0 : std::boxed::Box>) ; + var@2 -> s@0 : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; @@ -29618,7 +30608,7 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)])) move var@2 [Debug] Value to move: -proj_comp {} (s@0 : std::boxed::Box>) +s@0 : std::boxed::Box> [Debug] **About to evaluate statement**: [ set_discriminant(l, 0); @@ -29635,12 +30625,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; @@ -29660,12 +30651,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; @@ -29694,12 +30686,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; @@ -29719,12 +30712,13 @@ proj_comp {} (s@0 : std::boxed::Box>) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; @@ -29740,12 +30734,13 @@ proj_comp {} (s@0 : std::boxed::Box>) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; hd -> ⊥ : i32 ; @@ -29762,7 +30757,7 @@ proj_comp {} (s@0 : std::boxed::Box>) move l [Debug] Value to move: -test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } +test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } [Debug] **About to evaluate statement**: [ var@6 := move split_list(move var@7); @@ -29777,6 +30772,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box ⊥ : i32 ; tl -> ⊥ : test1::List ; var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@7 -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; var@10 -> ⊥ : i32 ; @@ -29802,6 +30798,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box ⊥ : i32 ; tl -> ⊥ : test1::List ; var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@7 -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; var@10 -> ⊥ : i32 ; @@ -29823,6 +30820,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box ⊥ : i32 ; tl -> ⊥ : test1::List ; var@6 -> ⊥ : (i32, test1::List) ; - var@7 -> test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } ; + var@7 -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; var@10 -> ⊥ : i32 ; @@ -29845,7 +30843,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box>); } +test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box>; } [Debug] **About to evaluate statement**: [ hd := copy (var@6).0; @@ -29859,6 +30857,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; - var@6 -> proj_comp {} (s@1 : (i32, test1::List)) ; + var@6 -> s@1 : (i32, test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; @@ -29884,6 +30883,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; - var@6 -> proj_comp {} (s@1 : (i32, test1::List)) ; + var@6 -> s@1 : (i32, test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; @@ -29905,6 +30905,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box ⊥ : test1::List ; hd -> ⊥ : i32 ; tl -> ⊥ : test1::List ; - var@6 -> proj_comp {} (s@1 : (i32, test1::List)) ; + var@6 -> s@1 : (i32, test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; @@ -29927,7 +30928,7 @@ test1::List::Cons { 0 = 0: i32; 1 = proj_comp {} (s@0 : std::boxed::Box ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; + hd -> s@2 : i32 ; tl -> ⊥ : test1::List ; - var@6 -> (proj_comp {} (s@2 : i32), proj_comp {} (s@3 : test1::List)) ; + var@6 -> (s@2 : i32, s@3 : test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; @@ -29965,6 +30967,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29973,9 +30976,9 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; + hd -> s@2 : i32 ; tl -> ⊥ : test1::List ; - var@6 -> (proj_comp {} (s@2 : i32), proj_comp {} (s@3 : test1::List)) ; + var@6 -> (s@2 : i32, s@3 : test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; @@ -29986,6 +30989,7 @@ proj_comp {} (s@2 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -29994,9 +30998,9 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; + hd -> s@2 : i32 ; tl -> ⊥ : test1::List ; - var@6 -> (proj_comp {} (s@2 : i32), proj_comp {} (s@3 : test1::List)) ; + var@6 -> (s@2 : i32, s@3 : test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; @@ -30008,7 +31012,7 @@ proj_comp {} (s@2 : i32) move (var@6).1 [Debug] Value to move: -proj_comp {} (s@3 : test1::List) +s@3 : test1::List [Debug] **About to evaluate statement**: [ var@10 := copy hd; @@ -30020,6 +31024,7 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30028,9 +31033,9 @@ proj_comp {} (s@3 : test1::List) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 ; @@ -30045,6 +31050,7 @@ proj_comp {} (s@3 : test1::List) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30053,9 +31059,9 @@ proj_comp {} (s@3 : test1::List) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 ; @@ -30066,6 +31072,7 @@ proj_comp {} (s@3 : test1::List) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30074,9 +31081,9 @@ proj_comp {} (s@3 : test1::List) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 ; @@ -30088,7 +31095,7 @@ proj_comp {} (s@3 : test1::List) copy hd [Debug] Value to copy: -proj_comp {} (s@2 : i32) +s@2 : i32 [Debug] **About to evaluate statement**: [ var@9 := move var@10 == 0: i32; @@ -30099,6 +31106,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30107,13 +31115,13 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 -> proj_comp {} (s@2 : i32) ; + var@10 -> s@2 : i32 ; } @@ -30124,6 +31132,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30132,19 +31141,20 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 -> proj_comp {} (s@2 : i32) ; + var@10 -> s@2 : i32 ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30153,13 +31163,13 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 -> proj_comp {} (s@2 : i32) ; + var@10 -> s@2 : i32 ; } @@ -30167,9 +31177,10 @@ proj_comp {} (s@2 : i32) move var@10 [Debug] Value to move: -proj_comp {} (s@2 : i32) +s@2 : i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30178,9 +31189,9 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 ; @@ -30200,6 +31211,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30208,12 +31220,12 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 -> proj_comp {} (s@4 : bool) ; + var@9 -> s@4 : bool ; var@10 -> ⊥ : i32 ; } @@ -30225,6 +31237,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30233,12 +31246,12 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 -> proj_comp {} (s@4 : bool) ; + var@9 -> s@4 : bool ; var@10 -> ⊥ : i32 ; } @@ -30246,6 +31259,7 @@ proj_comp {} (s@2 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30254,12 +31268,12 @@ proj_comp {} (s@2 : i32) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 -> proj_comp {} (s@4 : bool) ; + var@9 -> s@4 : bool ; var@10 -> ⊥ : i32 ; } @@ -30268,7 +31282,7 @@ proj_comp {} (s@2 : i32) move var@9 [Debug] Value to move: -proj_comp {} (s@4 : bool) +s@4 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@8); @@ -30277,6 +31291,7 @@ proj_comp {} (s@4 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30285,11 +31300,11 @@ proj_comp {} (s@4 : bool) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + hd -> s@2 : i32 ; + tl -> s@3 : test1::List ; + var@6 -> (s@2 : i32, ⊥ : test1::List) ; var@7 -> ⊥ : test1::List ; - var@8 -> proj_comp {} (s@5 : bool) ; + var@8 -> s@5 : bool ; var@9 -> ⊥ : bool ; var@10 -> ⊥ : i32 ; } @@ -30302,6 +31317,7 @@ proj_comp {} (s@4 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30310,11 +31326,11 @@ proj_comp {} (s@4 : bool) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + hd -> s@2 : i32 ; + tl -> s@3 : test1::List ; + var@6 -> (s@2 : i32, ⊥ : test1::List) ; var@7 -> ⊥ : test1::List ; - var@8 -> proj_comp {} (s@5 : bool) ; + var@8 -> s@5 : bool ; var@9 -> ⊥ : bool ; var@10 -> ⊥ : i32 ; } @@ -30323,6 +31339,7 @@ proj_comp {} (s@4 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30331,9 +31348,9 @@ proj_comp {} (s@4 : bool) l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + hd -> s@2 : i32 ; + tl -> s@3 : test1::List ; + var@6 -> (s@2 : i32, ⊥ : test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> true ; var@9 -> ⊥ : bool ; @@ -30353,6 +31370,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30361,9 +31379,9 @@ true l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 ; @@ -30378,6 +31396,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30386,9 +31405,9 @@ true l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; - tl -> proj_comp {} (s@3 : test1::List) ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : 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 ; @@ -30404,6 +31423,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30412,9 +31432,9 @@ true l -> ⊥ : test1::List ; var@2 -> ⊥ : std::boxed::Box> ; var@3 -> ⊥ : test1::List ; - hd -> proj_comp {} (s@2 : i32) ; + hd -> s@2 : i32 ; tl -> ⊥ : test1::List ; - var@6 -> (proj_comp {} (s@2 : i32), ⊥ : test1::List) ; + var@6 -> (s@2 : i32, ⊥ : test1::List) ; var@7 -> ⊥ : test1::List ; var@8 -> ⊥ : bool ; var@9 -> ⊥ : bool ; @@ -30437,6 +31457,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30447,9 +31468,9 @@ true proj_loans (s@2 : &r@0 mut (T)) } var@0 -> ⊥ : &'_ mut (T) ; - b -> proj_comp {} (s@0 : bool) ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + b -> s@0 : bool ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> ⊥ : bool ; } @@ -30461,6 +31482,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30471,9 +31493,9 @@ true proj_loans (s@2 : &r@0 mut (T)) } var@0 -> ⊥ : &'_ mut (T) ; - b -> proj_comp {} (s@0 : bool) ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + b -> s@0 : bool ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> ⊥ : bool ; } @@ -30481,6 +31503,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30491,9 +31514,9 @@ true proj_loans (s@2 : &r@0 mut (T)) } var@0 -> ⊥ : &'_ mut (T) ; - b -> proj_comp {} (s@0 : bool) ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + b -> s@0 : bool ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> ⊥ : bool ; } @@ -30502,7 +31525,7 @@ true copy b [Debug] Value to copy: -proj_comp {} (s@0 : bool) +s@0 : bool [Debug] **About to evaluate statement**: [ if (move var@4) { @@ -30515,6 +31538,7 @@ proj_comp {} (s@0 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30525,10 +31549,10 @@ proj_comp {} (s@0 : bool) proj_loans (s@2 : &r@0 mut (T)) } var@0 -> ⊥ : &'_ mut (T) ; - b -> proj_comp {} (s@0 : bool) ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; - var@4 -> proj_comp {} (s@0 : bool) ; + b -> s@0 : bool ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; + var@4 -> s@0 : bool ; } @@ -30544,6 +31568,7 @@ proj_comp {} (s@0 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30554,16 +31579,17 @@ proj_comp {} (s@0 : bool) proj_loans (s@2 : &r@0 mut (T)) } var@0 -> ⊥ : &'_ mut (T) ; - b -> proj_comp {} (s@0 : bool) ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; - var@4 -> proj_comp {} (s@0 : bool) ; + b -> s@0 : bool ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; + var@4 -> s@0 : bool ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30575,8 +31601,8 @@ proj_comp {} (s@0 : bool) } var@0 -> ⊥ : &'_ mut (T) ; b -> true ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> true ; } @@ -30592,6 +31618,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30603,8 +31630,8 @@ true } var@0 -> ⊥ : &'_ mut (T) ; b -> true ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> ⊥ : bool ; } @@ -30612,6 +31639,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30623,8 +31651,8 @@ true } var@0 -> ⊥ : &'_ mut (T) ; b -> false ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> false ; } @@ -30640,6 +31668,7 @@ false ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30651,8 +31680,8 @@ false } var@0 -> ⊥ : &'_ mut (T) ; b -> false ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> ⊥ : bool ; } @@ -30660,6 +31689,7 @@ false [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30671,8 +31701,8 @@ false } var@0 -> ⊥ : &'_ mut (T) ; b -> false ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + x -> s@1 : &r@0 mut (T) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> ⊥ : bool ; } @@ -30681,13 +31711,14 @@ false move y [Debug] Value to move: -proj_comp {} (s@2 : &r@0 mut (T)) +s@2 : &r@0 mut (T) [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30697,10 +31728,10 @@ proj_comp {} (s@2 : &r@0 mut (T)) ⌊mut@0, proj_loans (s@3 : T)⌋, proj_loans (s@2 : &r@0 mut (T)) } - var@0 -> &mut@1 (proj_comp {} (s@3 : T)) ; + var@0 -> &mut@1 (s@3 : T) ; b -> true ; x -> &mut@0 (⌊mut@1⌋) ; - y -> proj_comp {} (s@2 : &r@0 mut (T)) ; + y -> s@2 : &r@0 mut (T) ; var@4 -> ⊥ : bool ; } @@ -30712,6 +31743,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30721,9 +31753,9 @@ proj_comp {} (s@2 : &r@0 mut (T)) proj_loans (s@1 : &r@0 mut (T)), proj_loans (s@2 : &r@0 mut (T)) } - var@0 -> proj_comp {} (s@2 : &r@0 mut (T)) ; + var@0 -> s@2 : &r@0 mut (T) ; b -> false ; - x -> proj_comp {} (s@1 : &r@0 mut (T)) ; + x -> s@1 : &r@0 mut (T) ; y -> ⊥ : &'_ mut (T) ; var@4 -> ⊥ : bool ; } @@ -30758,6 +31790,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30791,6 +31824,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30820,6 +31854,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30875,6 +31910,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30908,6 +31944,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30937,6 +31974,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -30991,6 +32029,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31024,6 +32063,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31075,6 +32115,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31108,6 +32149,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31158,6 +32200,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31191,6 +32234,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31240,6 +32284,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31273,6 +32318,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31321,6 +32367,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31354,6 +32401,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31383,6 +32431,7 @@ proj_comp {} (s@2 : &r@0 mut (T)) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31414,6 +32463,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31451,6 +32501,7 @@ move var@4 &mut@1 (0: i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31506,6 +32557,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31513,7 +32565,7 @@ move var@6 var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> proj_comp {} (s@0 : &r@0 mut (i32)) ; + z -> s@0 : &r@0 mut (i32) ; var@4 -> ⊥ : &'_ mut (i32) ; var@5 -> &mut@0 (⌊mut@1⌋) ; var@6 -> ⊥ : &'_ mut (i32) ; @@ -31545,6 +32597,7 @@ move var@6 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31552,7 +32605,7 @@ move var@6 var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> proj_comp {} (s@0 : &r@0 mut (i32)) ; + z -> s@0 : &r@0 mut (i32) ; var@4 -> ⊥ : &'_ mut (i32) ; var@5 -> &mut@0 (⌊mut@1⌋) ; var@6 -> ⊥ : &'_ mut (i32) ; @@ -31580,6 +32633,7 @@ move var@6 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31587,7 +32641,7 @@ move var@6 var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> proj_comp {} (s@0 : &r@0 mut (i32)) ; + z -> s@0 : &r@0 mut (i32) ; var@4 -> ⊥ : &'_ mut (i32) ; var@5 -> &mut@0 (⌊mut@1⌋) ; var@6 -> ⊥ : &'_ mut (i32) ; @@ -31616,7 +32670,7 @@ move var@6 copy *(z) [Debug] Value to copy: -proj_comp {} (s@1 : i32) +s@1 : i32 [Debug] **About to evaluate statement**: [ *(z) := copy var@8 + 1: i32; @@ -31636,6 +32690,7 @@ proj_comp {} (s@1 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31643,12 +32698,12 @@ proj_comp {} (s@1 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@1 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -31675,6 +32730,7 @@ proj_comp {} (s@1 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31682,12 +32738,12 @@ proj_comp {} (s@1 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@1 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -31710,6 +32766,7 @@ proj_comp {} (s@1 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31717,12 +32774,12 @@ proj_comp {} (s@1 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@1 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -31746,9 +32803,10 @@ proj_comp {} (s@1 : i32) copy var@8 [Debug] Value to copy: -proj_comp {} (s@1 : i32) +s@1 : i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31756,12 +32814,12 @@ proj_comp {} (s@1 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@1 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -31802,6 +32860,7 @@ proj_comp {} (s@1 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31809,12 +32868,12 @@ proj_comp {} (s@1 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -31841,6 +32900,7 @@ proj_comp {} (s@1 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31848,12 +32908,12 @@ proj_comp {} (s@1 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -31876,6 +32936,7 @@ proj_comp {} (s@1 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31883,12 +32944,12 @@ proj_comp {} (s@1 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -31912,7 +32973,7 @@ proj_comp {} (s@1 : i32) copy *(z) [Debug] Value to copy: -proj_comp {} (s@2 : i32) +s@2 : i32 [Debug] **About to evaluate statement**: [ var@11 := move var@12 == 1: i32; @@ -31930,6 +32991,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31937,16 +32999,16 @@ proj_comp {} (s@2 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; - var@12 -> proj_comp {} (s@2 : i32) ; + var@12 -> s@2 : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; @@ -31969,6 +33031,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -31976,16 +33039,16 @@ proj_comp {} (s@2 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; - var@12 -> proj_comp {} (s@2 : i32) ; + var@12 -> s@2 : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; @@ -32004,6 +33067,7 @@ proj_comp {} (s@2 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32011,16 +33075,16 @@ proj_comp {} (s@2 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; - var@12 -> proj_comp {} (s@2 : i32) ; + var@12 -> s@2 : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; @@ -32040,9 +33104,10 @@ proj_comp {} (s@2 : i32) move var@12 [Debug] Value to move: -proj_comp {} (s@2 : i32) +s@2 : i32 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32050,12 +33115,12 @@ proj_comp {} (s@2 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32094,6 +33159,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32101,15 +33167,15 @@ proj_comp {} (s@2 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; - var@11 -> proj_comp {} (s@3 : bool) ; + var@11 -> s@3 : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -32133,6 +33199,7 @@ proj_comp {} (s@2 : i32) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32140,15 +33207,15 @@ proj_comp {} (s@2 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; - var@11 -> proj_comp {} (s@3 : bool) ; + var@11 -> s@3 : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -32168,6 +33235,7 @@ proj_comp {} (s@2 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32175,15 +33243,15 @@ proj_comp {} (s@2 : i32) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; - var@11 -> proj_comp {} (s@3 : bool) ; + var@11 -> s@3 : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; @@ -32204,7 +33272,7 @@ proj_comp {} (s@2 : i32) move var@11 [Debug] Value to move: -proj_comp {} (s@3 : bool) +s@3 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@10); @@ -32220,6 +33288,7 @@ proj_comp {} (s@3 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32227,14 +33296,14 @@ proj_comp {} (s@3 : bool) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> proj_comp {} (s@4 : bool) ; + var@10 -> s@4 : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -32259,6 +33328,7 @@ proj_comp {} (s@3 : bool) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32266,14 +33336,14 @@ proj_comp {} (s@3 : bool) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> proj_comp {} (s@4 : bool) ; + var@10 -> s@4 : bool ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -32294,6 +33364,7 @@ proj_comp {} (s@3 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32301,12 +33372,12 @@ proj_comp {} (s@3 : bool) var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> true ; var@11 -> ⊥ : bool ; @@ -32345,6 +33416,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32352,12 +33424,12 @@ true var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32384,6 +33456,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32391,12 +33464,12 @@ true var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32419,6 +33492,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -32426,12 +33500,12 @@ true var@0 -> ⊥ : () ; x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> &mut@4 (proj_comp {} (s@2 : i32)) ; + 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 -> proj_comp {} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32455,7 +33529,7 @@ true copy x [Debug] Value to copy: -proj_comp {0} (s@5 : i32) +s@5 : i32 [Debug] **About to evaluate statement**: [ var@14 := move var@15 == 1: i32; @@ -32469,26 +33543,27 @@ proj_comp {0} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {0} (s@5 : i32) ; + var@15 -> s@5 : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; @@ -32502,26 +33577,27 @@ proj_comp {0} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {0} (s@5 : i32) ; + var@15 -> s@5 : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; @@ -32531,26 +33607,27 @@ proj_comp {0} (s@5 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {0} (s@5 : i32) ; + var@15 -> s@5 : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; @@ -32561,22 +33638,23 @@ proj_comp {0} (s@5 : i32) move var@15 [Debug] Value to move: -proj_comp {0} (s@5 : i32) +s@5 : i32 [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : i32) ; + var@7 -> &mut@2 (s@6 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32605,25 +33683,26 @@ proj_comp {0} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {} (s@7 : bool) ; + var@14 -> s@7 : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; @@ -32638,25 +33717,26 @@ proj_comp {0} (s@5 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {} (s@7 : bool) ; + var@14 -> s@7 : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; @@ -32667,25 +33747,26 @@ proj_comp {0} (s@5 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {} (s@7 : bool) ; + var@14 -> s@7 : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; @@ -32697,7 +33778,7 @@ proj_comp {0} (s@5 : i32) move var@14 [Debug] Value to move: -proj_comp {} (s@7 : bool) +s@7 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@13); @@ -32709,24 +33790,25 @@ proj_comp {} (s@7 : bool) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {} (s@8 : bool) ; + var@13 -> s@8 : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; @@ -32742,24 +33824,25 @@ proj_comp {} (s@7 : bool) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : 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 -> proj_comp {} (s@8 : bool) ; + var@13 -> s@8 : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; @@ -32771,19 +33854,20 @@ proj_comp {} (s@7 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : i32) ; + var@7 -> &mut@2 (s@6 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32812,19 +33896,20 @@ true ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : i32) ; + var@7 -> &mut@2 (s@6 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32845,19 +33930,20 @@ true ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : i32) ; + var@7 -> &mut@2 (s@6 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32874,19 +33960,20 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; + 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 (proj_comp {0} (s@6 : i32)) ; - var@8 -> proj_comp {0} (s@1 : i32) ; + var@7 -> &mut@2 (s@6 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32904,7 +33991,7 @@ true copy y [Debug] Value to copy: -proj_comp {0} (s@6 : i32) +s@6 : i32 [Debug] **About to evaluate statement**: [ var@17 := move var@18 == 0: i32; @@ -32914,19 +34001,20 @@ proj_comp {0} (s@6 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32936,7 +34024,7 @@ proj_comp {0} (s@6 : i32) var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; - var@18 -> proj_comp {0} (s@6 : i32) ; + var@18 -> s@6 : i32 ; } @@ -32947,19 +34035,20 @@ proj_comp {0} (s@6 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32969,26 +34058,27 @@ proj_comp {0} (s@6 : i32) var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; - var@18 -> proj_comp {0} (s@6 : i32) ; + var@18 -> s@6 : i32 ; } [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -32998,7 +34088,7 @@ proj_comp {0} (s@6 : i32) var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; var@17 -> ⊥ : bool ; - var@18 -> proj_comp {0} (s@6 : i32) ; + var@18 -> s@6 : i32 ; } @@ -33006,22 +34096,23 @@ proj_comp {0} (s@6 : i32) move var@18 [Debug] Value to move: -proj_comp {0} (s@6 : i32) +s@6 : i32 [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33046,19 +34137,20 @@ proj_comp {0} (s@6 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33067,7 +34159,7 @@ proj_comp {0} (s@6 : i32) var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; - var@17 -> proj_comp {} (s@9 : bool) ; + var@17 -> s@9 : bool ; var@18 -> ⊥ : i32 ; } @@ -33079,19 +34171,20 @@ proj_comp {0} (s@6 : i32) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33100,7 +34193,7 @@ proj_comp {0} (s@6 : i32) var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; - var@17 -> proj_comp {} (s@9 : bool) ; + var@17 -> s@9 : bool ; var@18 -> ⊥ : i32 ; } @@ -33108,19 +34201,20 @@ proj_comp {0} (s@6 : i32) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33129,7 +34223,7 @@ proj_comp {0} (s@6 : i32) var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; var@16 -> ⊥ : bool ; - var@17 -> proj_comp {} (s@9 : bool) ; + var@17 -> s@9 : bool ; var@18 -> ⊥ : i32 ; } @@ -33138,7 +34232,7 @@ proj_comp {0} (s@6 : i32) move var@17 [Debug] Value to move: -proj_comp {} (s@9 : bool) +s@9 : bool [Debug] **About to evaluate statement**: [ assert(¬move var@16); @@ -33146,19 +34240,20 @@ proj_comp {} (s@9 : bool) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33166,7 +34261,7 @@ proj_comp {} (s@9 : bool) var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; - var@16 -> proj_comp {} (s@10 : bool) ; + var@16 -> s@10 : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; } @@ -33179,19 +34274,20 @@ proj_comp {} (s@9 : bool) ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33199,7 +34295,7 @@ proj_comp {} (s@9 : bool) var@13 -> ⊥ : bool ; var@14 -> ⊥ : bool ; var@15 -> ⊥ : i32 ; - var@16 -> proj_comp {} (s@10 : bool) ; + var@16 -> s@10 : bool ; var@17 -> ⊥ : bool ; var@18 -> ⊥ : i32 ; } @@ -33208,19 +34304,20 @@ proj_comp {} (s@9 : bool) [Debug] eval_operand: - ctx: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33245,19 +34342,20 @@ true ] **Context**: +# Ended regions: {0} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> proj_comp {0} (s@5 : i32) ; - y -> proj_comp {0} (s@6 : i32) ; + 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 -> proj_comp {0} (s@1 : i32) ; + var@8 -> s@1 : i32 ; var@9 -> ⊥ : (i32, bool) ; var@10 -> ⊥ : bool ; var@11 -> ⊥ : bool ; @@ -33281,6 +34379,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33292,7 +34391,7 @@ true proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) } var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> proj_comp {} (s@0 : &r@0 mut (&r@1 mut (T))) ; + x -> s@0 : &r@0 mut (&r@1 mut (T)) ; var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; } @@ -33304,6 +34403,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33315,7 +34415,7 @@ true proj_loans (s@0 : &r@0 mut (&r@1 mut (T))) } var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; - x -> proj_comp {} (s@0 : &r@0 mut (&r@1 mut (T))) ; + x -> s@0 : &r@0 mut (&r@1 mut (T)) ; var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ; } @@ -33328,6 +34428,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33340,7 +34441,7 @@ true } var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : &r@1 mut (T))) ; + var@2 -> &mut@1 (s@1 : &r@1 mut (T)) ; } @@ -33351,6 +34452,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33363,7 +34465,7 @@ true } var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : &r@1 mut (T))) ; + var@2 -> &mut@1 (s@1 : &r@1 mut (T)) ; } @@ -33374,6 +34476,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33384,7 +34487,7 @@ true abs@1{parents={0}}{regions={1}} { @ignored_mut_loan(0, proj_loans (s@1 : &r@1 mut (T))) } - var@0 -> &mut@2 (proj_comp {} (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⌋) ; } @@ -33400,6 +34503,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33408,7 +34512,7 @@ true proj_loans (s@0 : &r@0 mut ((&r@0 mut (T), u32))) } var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; - x -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (T), u32))) ; + x -> s@0 : &r@0 mut ((&r@0 mut (T), u32)) ; var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; } @@ -33420,6 +34524,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33428,7 +34533,7 @@ true proj_loans (s@0 : &r@0 mut ((&r@0 mut (T), u32))) } var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; - x -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (T), u32))) ; + x -> s@0 : &r@0 mut ((&r@0 mut (T), u32)) ; var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; } @@ -33441,6 +34546,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33450,7 +34556,7 @@ true } var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : (&r@0 mut (T), u32))) ; + var@2 -> &mut@1 (s@1 : (&r@0 mut (T), u32)) ; } @@ -33461,6 +34567,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33470,7 +34577,7 @@ true } var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : (&r@0 mut (T), u32))) ; + var@2 -> &mut@1 (s@1 : (&r@0 mut (T), u32)) ; } @@ -33481,6 +34588,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33488,7 +34596,7 @@ true abs@0{parents={}}{regions={0}} { ⌊mut@0, proj_loans (s@1 : (&r@0 mut (T), u32))⌋ } - var@0 -> &mut@2 (proj_comp {} (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⌋) ; } @@ -33515,6 +34623,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33540,6 +34649,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33561,6 +34671,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33600,6 +34711,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33625,6 +34737,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33661,6 +34774,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33686,6 +34800,7 @@ true ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33707,6 +34822,7 @@ true [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33746,6 +34862,7 @@ move px ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33771,6 +34888,7 @@ move px ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33792,6 +34910,7 @@ move px [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33836,6 +34955,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33861,6 +34981,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33882,6 +35003,7 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33917,6 +35039,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33942,6 +35065,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33974,6 +35098,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -33999,6 +35124,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34030,6 +35156,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34055,6 +35182,7 @@ ty: (Types.Adt (Types.Tuple, [], ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34076,6 +35204,7 @@ ty: (Types.Adt (Types.Tuple, [], [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34137,6 +35266,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34147,7 +35277,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⊥ : u32 ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34166,6 +35296,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34176,7 +35307,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⊥ : u32 ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34191,6 +35322,7 @@ move var@7 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34201,7 +35333,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⊥ : u32 ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34226,6 +35358,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34236,7 +35369,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> 2: u32 ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34255,6 +35388,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34265,7 +35399,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> 2: u32 ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34287,6 +35421,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34297,7 +35432,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@3⌋ ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34316,6 +35451,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34326,7 +35462,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@3⌋ ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34347,6 +35483,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34357,7 +35494,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + 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) ; @@ -34376,6 +35513,7 @@ move var@7 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34386,7 +35524,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + 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) ; @@ -34401,6 +35539,7 @@ move var@7 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34411,7 +35550,7 @@ move var@7 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> proj_comp {} (s@0 : &r@0 mut ((&r@0 mut (u32), u32))) ; + 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) ; @@ -34435,6 +35574,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34445,7 +35585,7 @@ move var@9 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> &mut@5 ((&mut@4 (2: u32), proj_comp {} (s@3 : u32))) ; + pp1 -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@3⌋ ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34464,6 +35604,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34474,7 +35615,7 @@ move var@9 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> &mut@5 ((&mut@4 (2: u32), proj_comp {} (s@3 : u32))) ; + pp1 -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@3⌋ ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34489,6 +35630,7 @@ move var@9 [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34499,7 +35641,7 @@ move var@9 p -> ⌊mut@1⌋ ; var@4 -> ⊥ : &'_ mut (u32) ; pp0 -> &mut@1 (⌊mut@2⌋) ; - pp1 -> &mut@5 ((&mut@4 (2: u32), proj_comp {} (s@3 : u32))) ; + pp1 -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ; var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; y -> ⌊mut@3⌋ ; var@9 -> ⊥ : &'_ mut (u32) ; @@ -34520,6 +35662,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34552,6 +35695,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34560,7 +35704,7 @@ move var@9 proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) } var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; - x -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) ; + x -> s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) ; var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; } @@ -34572,6 +35716,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34580,7 +35725,7 @@ move var@9 proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) } var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; - x -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))) ; + x -> s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) ; var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; } @@ -34593,6 +35738,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34602,7 +35748,7 @@ move var@9 } var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut ((&r@0 mut (T), u32)))) ; + var@2 -> &mut@1 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; } @@ -34613,6 +35759,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34622,7 +35769,7 @@ move var@9 } var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut ((&r@0 mut (T), u32)))) ; + var@2 -> &mut@1 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ; } @@ -34633,6 +35780,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34640,7 +35788,7 @@ move var@9 abs@0{parents={}}{regions={0}} { ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋ } - var@0 -> &mut@2 (proj_comp {} (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⌋) ; } @@ -34656,6 +35804,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34664,7 +35813,7 @@ move var@9 proj_loans (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))) } var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; - x -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))) ; + x -> s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) ; var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; } @@ -34676,6 +35825,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34684,7 +35834,7 @@ move var@9 proj_loans (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))) } var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; - x -> proj_comp {} (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))) ; + x -> s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) ; var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; } @@ -34697,6 +35847,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34706,7 +35857,7 @@ move var@9 } var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut (&r@0 mut (u32)))) ; + var@2 -> &mut@1 (s@1 : &r@0 mut (&r@0 mut (u32))) ; } @@ -34717,6 +35868,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34726,7 +35878,7 @@ move var@9 } var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ; x -> &mut@0 (⌊mut@1⌋) ; - var@2 -> &mut@1 (proj_comp {} (s@1 : &r@0 mut (&r@0 mut (u32)))) ; + var@2 -> &mut@1 (s@1 : &r@0 mut (&r@0 mut (u32))) ; } @@ -34737,6 +35889,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34744,7 +35897,7 @@ move var@9 abs@0{parents={}}{regions={0}} { ⌊mut@0, proj_loans (s@1 : &r@0 mut (&r@0 mut (u32)))⌋ } - var@0 -> &mut@2 (proj_comp {} (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⌋) ; } @@ -34758,6 +35911,7 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34771,8 +35925,8 @@ move var@9 proj_loans (s@1 : &r@0 (&r@0 mut (u32))) } var@0 -> ⊥ : () ; - _x -> proj_comp {} (s@0 : &r@0 mut (&r@1 (u32))) ; - _y -> proj_comp {} (s@1 : &r@0 (&r@0 mut (u32))) ; + _x -> s@0 : &r@0 mut (&r@1 (u32)) ; + _y -> s@1 : &r@0 (&r@0 mut (u32)) ; } @@ -34785,12 +35939,13 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : &'_ (u32) ; - x -> proj_comp {} (s@0 : &'static (u32)) ; + x -> s@0 : &'static (u32) ; } @@ -34801,24 +35956,26 @@ move var@9 ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : &'_ (u32) ; - x -> proj_comp {} (s@0 : &'static (u32)) ; + x -> s@0 : &'static (u32) ; } [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: { var@0 -> ⊥ : &'_ (u32) ; - x -> proj_comp {} (s@0 : &'static (u32)) ; + x -> s@0 : &'static (u32) ; } @@ -34826,19 +35983,20 @@ move var@9 copy x [Debug] Value to copy: -proj_comp {} (s@0 : &'static (u32)) +s@0 : &'static (u32) [Debug] **About to evaluate statement**: [ return ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: { - var@0 -> proj_comp {} (s@0 : &'static (u32)) ; - x -> proj_comp {} (s@0 : &'static (u32)) ; + var@0 -> s@0 : &'static (u32) ; + x -> s@0 : &'static (u32) ; } @@ -34851,6 +36009,7 @@ proj_comp {} (s@0 : &'static (u32)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34866,6 +36025,7 @@ proj_comp {} (s@0 : &'static (u32)) ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34877,6 +36037,7 @@ proj_comp {} (s@0 : &'static (u32)) [Debug] eval_operand: - ctx: +# Ended regions: {} # 1 frame(s) # Frame 0: @@ -34894,6 +36055,7 @@ a ] **Context**: +# Ended regions: {} # 1 frame(s) # Frame 0: -- cgit v1.2.3