From e1c7e68a476f65ec8c0b4d7c02a2dea09b2a4522 Mon Sep 17 00:00:00 2001 From: Son Ho Date: Fri, 17 Dec 2021 16:55:55 +0100 Subject: Use eval_ctx instead of env in many functions of the interpreter --- tests/trace_reference.txt | 1188 +++------------------------------------------ 1 file changed, 61 insertions(+), 1127 deletions(-) (limited to 'tests') diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt index f69eff48..4328c2c0 100644 --- a/tests/trace_reference.txt +++ b/tests/trace_reference.txt @@ -3952,34 +3952,6 @@ About to evaluate statement: var@6 := copy x - op: copy x -[Debug] end_borrow 0: context before: -# 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] end_borrow 0: context after: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - px -> ⌊mut@1⌋ ; - ppx -> &mut@1 (⊥ : &'_ mut (i32)) ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : i32 ; -} - [Debug] Value to copy: 1: i32 [Debug] @@ -4817,58 +4789,6 @@ move var@6 [Debug] Value to move: &mut@3 (1: i32) -[Debug] end_borrow 0: context before: -# 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 (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] end_borrow 0: context after: -# 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 (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] # 1 frame(s) @@ -5076,58 +4996,6 @@ About to evaluate statement: var@9 := copy *(px) - op: copy *(px) -[Debug] end_borrow 2: context before: -# 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] end_borrow 2: context after: -# 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] Value to copy: 2: i32 [Debug] @@ -5994,58 +5862,6 @@ About to evaluate statement: var@15 := copy *(py) - op: copy *(py) -[Debug] end_borrow 3: context before: -# 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] end_borrow 3: context after: -# 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] Value to copy: 2: i32 [Debug] @@ -6455,58 +6271,6 @@ About to evaluate statement: var@18 := copy y - op: copy y -[Debug] end_borrow 1: context before: -# 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] end_borrow 1: context after: -# 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] Value to copy: 2: i32 [Debug] @@ -7485,38 +7249,6 @@ move var@3 }); ty = (Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) } -[Debug] end_borrows {}: context before: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({0}, @Box(0: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⌊inactivated_mut@0⌋ ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -[Debug] end_borrows {}: context after: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({0}, @Box(0: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⌊inactivated_mut@0⌋ ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - [Debug] Value to move: &mut@0 (@Box(0: i32)) [Debug] ctx_pop_frame: @@ -7543,51 +7275,7 @@ move var@3 [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 -[Debug] end_borrow 0: context before: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> ⌊mut@0⌋ ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> &mut@1 (0: i32) ; - var@1 -> &mut@0 (@Box(⌊mut@1⌋)) ; -} - -[Debug] end_borrow 0: context after: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> &mut@1 (0: i32) ; - var@1 -> ⊥ : &'_ mut (std::boxed::Box) ; -} - -[Debug] ctx_pop_frame: after dropping local variables: +[Debug] ctx_pop_frame: after dropping local variables: # 2 frame(s) # Frame 0: @@ -7746,38 +7434,6 @@ return About to evaluate statement: var@5 := &b -[Debug] end_borrow 1: context before: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(⌊mut@1⌋) ; - x -> &mut@1 (1: i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -[Debug] end_borrow 1: context after: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(1: i32) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - [Debug] # 1 frame(s) @@ -7872,50 +7528,6 @@ move var@5 [Debug] ctx_pop_frame: locals to drop: [1] [Debug] drop_value: place: var@1 -[Debug] end_borrow 2: context before: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @shared_loan({2}, @Box(@shared_loan({3}, 1: i32))) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> ⌊shared@3⌋ ; - var@1 -> ⌊shared@2⌋ ; -} - -[Debug] end_borrow 2: context after: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -# Frame 1: -{ - @return -> ⌊shared@3⌋ ; - var@1 -> ⊥ : &'_ (std::boxed::Box) ; -} - [Debug] ctx_pop_frame: after dropping local variables: # 2 frame(s) @@ -8276,38 +7888,6 @@ return About to evaluate statement: drop(b) [Debug] drop_value: place: b -[Debug] end_borrows {3}: context before: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(@shared_loan({3}, 1: i32)) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⌊shared@3⌋ ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - -[Debug] end_borrows {3}: context after: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - b -> @Box(1: i32) ; - x -> ⊥ : &'_ mut (i32) ; - var@3 -> ⊥ : &'_ mut (std::boxed::Box) ; - x -> ⊥ : &'_ (i32) ; - var@5 -> ⊥ : &'_ (std::boxed::Box) ; - var@6 -> ⊥ : bool ; - var@7 -> ⊥ : bool ; - var@8 -> ⊥ : i32 ; -} - [Debug] # 1 frame(s) @@ -9903,50 +9483,6 @@ About to evaluate statement: return [Debug] ctx_pop_frame: locals to drop: [2,1] [Debug] drop_value: place: var@2 [Debug] drop_value: place: l -[Debug] end_borrow 1: context before: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; -} - -# Frame 1: -{ - var@0 -> true ; - l -> ⌊shared@1⌋ ; - var@2 -> ⊥ : isize ; -} - -[Debug] end_borrow 1: context after: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; -} - -# Frame 1: -{ - var@0 -> true ; - l -> ⊥ : &'_ (test1::List) ; - var@2 -> ⊥ : isize ; -} - [Debug] ctx_pop_frame: after dropping local variables: # 2 frame(s) @@ -10151,36 +9687,6 @@ return About to evaluate statement: drop(l) [Debug] drop_value: place: l -[Debug] end_borrows {0}: context before: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⌊shared@0⌋ ; -} - -[Debug] end_borrows {0}: context after: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ; - var@2 -> ⊥ : std::boxed::Box> ; - var@3 -> ⊥ : test1::List ; - var@4 -> ⊥ : bool ; - var@5 -> ⊥ : bool ; - var@6 -> ⊥ : &'_ (test1::List) ; - var@7 -> ⊥ : &'_ (test1::List) ; -} - [Debug] # 1 frame(s) @@ -13791,7 +13297,10 @@ move var@4 { Values.value = (Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 })); ty = (Types.Integer Types.I32) } -[Debug] end_borrows {}: context before: +[Debug] Value to move: +&mut@1 (0: i32) +[Debug] eval_operand: +- ctx: # 1 frame(s) # Frame 0: @@ -13800,8 +13309,8 @@ move var@4 x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⌊inactivated_mut@1⌋ ; - var@5 -> &mut@0 (@shared_loan({1}, 0: 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 ; @@ -13817,8 +13326,18 @@ move var@4 var@18 -> ⊥ : i32 ; } -[Debug] end_borrows {}: context after: -# 1 frame(s) + +- 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] +# 2 frame(s) # Frame 0: { @@ -13826,10 +13345,10 @@ move var@4 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@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 ; @@ -13843,124 +13362,7 @@ move var@4 var@18 -> ⊥ : 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] end_borrows {}: context before: -# 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 ; -} - -[Debug] end_borrows {}: context after: -# 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 ; -} - -[Debug] Value to move: -&mut@3 (0: i32) -[Debug] -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: +# Frame 1: { var@0 -> ⊥ : &'_ mut (i32) ; b -> true ; @@ -14296,147 +13698,7 @@ About to evaluate statement: return [Debug] ctx_pop_frame: locals to drop: [4,3,2,1] [Debug] drop_value: place: var@4 [Debug] drop_value: place: y -[Debug] end_borrow 3: context before: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (⌊mut@3⌋) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> &mut@4 (0: i32) ; - b -> true ; - x -> &mut@1 (⌊mut@4⌋) ; - y -> &mut@3 (0: i32) ; - var@4 -> ⊥ : bool ; -} - -[Debug] end_borrow 3: context after: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> &mut@4 (0: i32) ; - b -> true ; - x -> &mut@1 (⌊mut@4⌋) ; - y -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : bool ; -} - [Debug] drop_value: place: x -[Debug] end_borrow 1: context before: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@1⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> &mut@4 (0: i32) ; - b -> true ; - x -> &mut@1 (⌊mut@4⌋) ; - y -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : bool ; -} - -[Debug] end_borrow 1: context after: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> ⊥ : i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -# Frame 1: -{ - var@0 -> &mut@4 (0: i32) ; - b -> true ; - x -> ⊥ : &'_ mut (i32) ; - y -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : bool ; -} - [Debug] drop_value: place: b [Debug] ctx_pop_frame: after dropping local variables: # 2 frame(s) @@ -15145,137 +14407,10 @@ return var@18 -> ⊥ : i32 ; } -About to evaluate statement: assert(¬move var@10) - -[Debug] eval_operand: -- ctx: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> false ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -move var@10 - -[Debug] Value to move: -false -[Debug] -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -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] -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -About to evaluate statement: var@15 := copy x - -[Debug] eval_operand: -- ctx: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - y -> ⌊mut@2⌋ ; - z -> &mut@4 (1: i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> &mut@0 (⌊mut@4⌋) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - - -- op: -copy x +About to evaluate statement: assert(¬move var@10) -[Debug] end_borrow 0: context before: +[Debug] eval_operand: +- ctx: # 1 frame(s) # Frame 0: @@ -15290,7 +14425,7 @@ copy x var@7 -> &mut@2 (0: i32) ; var@8 -> 0: i32 ; var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; + var@10 -> false ; var@11 -> ⊥ : bool ; var@12 -> ⊥ : i32 ; var@13 -> ⊥ : bool ; @@ -15301,17 +14436,23 @@ copy x var@18 -> ⊥ : i32 ; } -[Debug] end_borrow 0: context after: + +- op: +move var@10 + +[Debug] Value to move: +false +[Debug] # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> ⌊mut@4⌋ ; + x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; z -> &mut@4 (1: i32) ; var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; + var@5 -> &mut@0 (⌊mut@4⌋) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (0: i32) ; var@8 -> 0: i32 ; @@ -15327,17 +14468,27 @@ copy x var@18 -> ⊥ : i32 ; } -[Debug] end_borrow 4: context before: +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] # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> ⌊mut@4⌋ ; + x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; z -> &mut@4 (1: i32) ; var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; + var@5 -> &mut@0 (⌊mut@4⌋) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (0: i32) ; var@8 -> 0: i32 ; @@ -15353,17 +14504,20 @@ copy x var@18 -> ⊥ : i32 ; } -[Debug] end_borrow 4: context after: +About to evaluate statement: var@15 := copy x + +[Debug] eval_operand: +- ctx: # 1 frame(s) # Frame 0: { var@0 -> ⊥ : () ; - x -> 1: i32 ; + x -> ⌊mut@0⌋ ; y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; + z -> &mut@4 (1: i32) ; var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; + var@5 -> &mut@0 (⌊mut@4⌋) ; var@6 -> ⊥ : &'_ mut (i32) ; var@7 -> &mut@2 (0: i32) ; var@8 -> 0: i32 ; @@ -15379,6 +14533,10 @@ copy x var@18 -> ⊥ : i32 ; } + +- op: +copy x + [Debug] Value to copy: 1: i32 [Debug] @@ -15788,58 +14946,6 @@ About to evaluate statement: var@18 := copy y - op: copy y -[Debug] end_borrow 2: context before: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> ⌊mut@2⌋ ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> &mut@2 (0: i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - -[Debug] end_borrow 2: context after: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 1: i32 ; - y -> 0: i32 ; - z -> ⊥ : &'_ mut (i32) ; - var@4 -> ⊥ : &'_ mut (i32) ; - var@5 -> ⊥ : &'_ mut (i32) ; - var@6 -> ⊥ : &'_ mut (i32) ; - var@7 -> ⊥ : &'_ mut (i32) ; - var@8 -> 0: i32 ; - var@9 -> ⊥ : (i32, bool) ; - var@10 -> ⊥ : bool ; - var@11 -> ⊥ : bool ; - var@12 -> ⊥ : i32 ; - var@13 -> ⊥ : bool ; - var@14 -> ⊥ : bool ; - var@15 -> ⊥ : i32 ; - var@16 -> ⊥ : bool ; - var@17 -> ⊥ : bool ; - var@18 -> ⊥ : i32 ; -} - [Debug] Value to copy: 0: i32 [Debug] @@ -16723,42 +15829,6 @@ move var@7 (Types.Integer Types.U32)] )) } -[Debug] end_borrows {}: context before: -# 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] end_borrows {}: context after: -# 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] Value to move: &mut@2 ((&mut@0 (0: u32), 1: u32)) [Debug] @@ -16926,107 +15996,7 @@ About to evaluate statement: return [Debug] ctx_pop_frame: locals to drop: [2,1] [Debug] drop_value: place: var@2 -[Debug] end_borrow 3: context before: -# 2 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 ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - -# Frame 1: -{ - var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - x -> &mut@2 (⌊mut@3⌋) ; - var@2 -> &mut@3 (⌊mut@4⌋) ; -} - -[Debug] end_borrow 3: context after: -# 2 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 ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - -# Frame 1: -{ - var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - x -> &mut@2 (⌊mut@4⌋) ; - var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; -} - [Debug] drop_value: place: x -[Debug] end_borrow 2: context before: -# 2 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 ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - -# Frame 1: -{ - var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - x -> &mut@2 (⌊mut@4⌋) ; - var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; -} - -[Debug] end_borrow 2: context after: -# 2 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⊥ : u32 ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> ⊥ : &'_ mut (u32) ; -} - -# Frame 1: -{ - var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - x -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; -} - [Debug] ctx_pop_frame: after dropping local variables: # 2 frame(s) @@ -17306,42 +16276,6 @@ move var@9 [Debug] Value to move: &mut@6 (2: u32) -[Debug] end_borrow 0: context before: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> ⌊mut@0⌋ ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⌊mut@5⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@5 (⌊mut@6⌋) ; -} - -[Debug] end_borrow 0: context after: -# 1 frame(s) - -# Frame 0: -{ - var@0 -> ⊥ : () ; - x -> 0: u32 ; - px -> ⊥ : &'_ mut (u32) ; - p -> ⌊mut@1⌋ ; - var@4 -> ⊥ : &'_ mut (u32) ; - pp0 -> &mut@1 (⌊mut@4⌋) ; - pp1 -> &mut@4 ((⊥ : &'_ mut (u32), 1: u32)) ; - var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ; - y -> ⌊mut@5⌋ ; - var@9 -> ⊥ : &'_ mut (u32) ; - var@10 -> &mut@5 (⌊mut@6⌋) ; -} - [Debug] # 1 frame(s) -- cgit v1.2.3