From bf883726d771988c838bc6a6e1c012dfb008769c Mon Sep 17 00:00:00 2001
From: Son Ho
Date: Tue, 11 Jun 2024 13:59:39 +0200
Subject: Update the tests for tuples

---
 tests/lean/NoNestedBorrows.lean | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

(limited to 'tests/lean/NoNestedBorrows.lean')

diff --git a/tests/lean/NoNestedBorrows.lean b/tests/lean/NoNestedBorrows.lean
index b8fbcff0..262fc79e 100644
--- a/tests/lean/NoNestedBorrows.lean
+++ b/tests/lean/NoNestedBorrows.lean
@@ -538,27 +538,44 @@ def read_then_incr (x : U32) : Result (U32 × U32) :=
    Source: 'tests/src/no_nested_borrows.rs', lines 480:0-480:24 -/
 def Tuple (T1 T2 : Type) := T1 × T2
 
-/- [no_nested_borrows::use_tuple_struct]:
-   Source: 'tests/src/no_nested_borrows.rs', lines 482:0-482:48 -/
-def use_tuple_struct (x : Tuple U32 U32) : Result (Tuple U32 U32) :=
+/- [no_nested_borrows::read_tuple]:
+   Source: 'tests/src/no_nested_borrows.rs', lines 482:0-482:40 -/
+def read_tuple (x : (U32 × U32)) : Result U32 :=
+  let (i, _) := x
+  Result.ok i
+
+/- [no_nested_borrows::update_tuple]:
+   Source: 'tests/src/no_nested_borrows.rs', lines 486:0-486:39 -/
+def update_tuple (x : (U32 × U32)) : Result (U32 × U32) :=
+  let (_, i) := x
+  Result.ok (1#u32, i)
+
+/- [no_nested_borrows::read_tuple_struct]:
+   Source: 'tests/src/no_nested_borrows.rs', lines 490:0-490:52 -/
+def read_tuple_struct (x : Tuple U32 U32) : Result U32 :=
+  Result.ok x.#0
+
+/- [no_nested_borrows::update_tuple_struct]:
+   Source: 'tests/src/no_nested_borrows.rs', lines 494:0-494:51 -/
+def update_tuple_struct (x : Tuple U32 U32) : Result (Tuple U32 U32) :=
   Result.ok (1#u32, x.#1)
 
 /- [no_nested_borrows::create_tuple_struct]:
-   Source: 'tests/src/no_nested_borrows.rs', lines 486:0-486:61 -/
+   Source: 'tests/src/no_nested_borrows.rs', lines 498:0-498:61 -/
 def create_tuple_struct (x : U32) (y : U64) : Result (Tuple U32 U64) :=
   Result.ok (x, y)
 
 /- [no_nested_borrows::IdType]
-   Source: 'tests/src/no_nested_borrows.rs', lines 491:0-491:20 -/
+   Source: 'tests/src/no_nested_borrows.rs', lines 503:0-503:20 -/
 @[reducible] def IdType (T : Type) := T
 
 /- [no_nested_borrows::use_id_type]:
-   Source: 'tests/src/no_nested_borrows.rs', lines 493:0-493:40 -/
+   Source: 'tests/src/no_nested_borrows.rs', lines 505:0-505:40 -/
 def use_id_type (T : Type) (x : IdType T) : Result T :=
   Result.ok x
 
 /- [no_nested_borrows::create_id_type]:
-   Source: 'tests/src/no_nested_borrows.rs', lines 497:0-497:43 -/
+   Source: 'tests/src/no_nested_borrows.rs', lines 509:0-509:43 -/
 def create_id_type (T : Type) (x : T) : Result (IdType T) :=
   Result.ok x
 
-- 
cgit v1.2.3


From 2e91b90e332c473253c2ff91fd65da34eb709572 Mon Sep 17 00:00:00 2001
From: Son Ho
Date: Tue, 11 Jun 2024 14:06:23 +0200
Subject: Deactivate the use of tuple projectors in the Lean backend

---
 tests/lean/NoNestedBorrows.lean | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'tests/lean/NoNestedBorrows.lean')

diff --git a/tests/lean/NoNestedBorrows.lean b/tests/lean/NoNestedBorrows.lean
index 262fc79e..f0438050 100644
--- a/tests/lean/NoNestedBorrows.lean
+++ b/tests/lean/NoNestedBorrows.lean
@@ -553,12 +553,14 @@ def update_tuple (x : (U32 × U32)) : Result (U32 × U32) :=
 /- [no_nested_borrows::read_tuple_struct]:
    Source: 'tests/src/no_nested_borrows.rs', lines 490:0-490:52 -/
 def read_tuple_struct (x : Tuple U32 U32) : Result U32 :=
-  Result.ok x.#0
+  let (i, _) := x
+  Result.ok i
 
 /- [no_nested_borrows::update_tuple_struct]:
    Source: 'tests/src/no_nested_borrows.rs', lines 494:0-494:51 -/
 def update_tuple_struct (x : Tuple U32 U32) : Result (Tuple U32 U32) :=
-  Result.ok (1#u32, x.#1)
+  let (_, i) := x
+  Result.ok (1#u32, i)
 
 /- [no_nested_borrows::create_tuple_struct]:
    Source: 'tests/src/no_nested_borrows.rs', lines 498:0-498:61 -/
-- 
cgit v1.2.3

