summaryrefslogtreecommitdiff
path: root/tests/lean
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lean')
-rw-r--r--tests/lean/Constants.lean36
-rw-r--r--tests/lean/Traits.lean78
2 files changed, 92 insertions, 22 deletions
diff --git a/tests/lean/Constants.lean b/tests/lean/Constants.lean
index 3727e393..40f590d4 100644
--- a/tests/lean/Constants.lean
+++ b/tests/lean/Constants.lean
@@ -8,17 +8,17 @@ namespace constants
/- [constants::X0]
Source: 'src/constants.rs', lines 5:0-5:17 -/
def X0_body : Result U32 := Result.ret 0#u32
-def X0 : U32 := eval_global (X0_body)
+def X0 : U32 := eval_global X0_body
/- [constants::X1]
Source: 'src/constants.rs', lines 7:0-7:17 -/
def X1_body : Result U32 := Result.ret core_u32_max
-def X1 : U32 := eval_global (X1_body)
+def X1 : U32 := eval_global X1_body
/- [constants::X2]
Source: 'src/constants.rs', lines 10:0-10:17 -/
def X2_body : Result U32 := Result.ret 3#u32
-def X2 : U32 := eval_global (X2_body)
+def X2 : U32 := eval_global X2_body
/- [constants::incr]:
Source: 'src/constants.rs', lines 17:0-17:32 -/
@@ -28,7 +28,7 @@ def incr (n : U32) : Result U32 :=
/- [constants::X3]
Source: 'src/constants.rs', lines 15:0-15:17 -/
def X3_body : Result U32 := incr 32#u32
-def X3 : U32 := eval_global (X3_body)
+def X3 : U32 := eval_global X3_body
/- [constants::mk_pair0]:
Source: 'src/constants.rs', lines 23:0-23:51 -/
@@ -49,22 +49,22 @@ def mk_pair1 (x : U32) (y : U32) : Result (Pair U32 U32) :=
/- [constants::P0]
Source: 'src/constants.rs', lines 31:0-31:24 -/
def P0_body : Result (U32 × U32) := mk_pair0 0#u32 1#u32
-def P0 : (U32 × U32) := eval_global (P0_body)
+def P0 : (U32 × U32) := eval_global P0_body
/- [constants::P1]
Source: 'src/constants.rs', lines 32:0-32:28 -/
def P1_body : Result (Pair U32 U32) := mk_pair1 0#u32 1#u32
-def P1 : Pair U32 U32 := eval_global (P1_body)
+def P1 : Pair U32 U32 := eval_global P1_body
/- [constants::P2]
Source: 'src/constants.rs', lines 33:0-33:24 -/
def P2_body : Result (U32 × U32) := Result.ret (0#u32, 1#u32)
-def P2 : (U32 × U32) := eval_global (P2_body)
+def P2 : (U32 × U32) := eval_global P2_body
/- [constants::P3]
Source: 'src/constants.rs', lines 34:0-34:28 -/
def P3_body : Result (Pair U32 U32) := Result.ret { x := 0#u32, y := 1#u32 }
-def P3 : Pair U32 U32 := eval_global (P3_body)
+def P3 : Pair U32 U32 := eval_global P3_body
/- [constants::Wrap]
Source: 'src/constants.rs', lines 49:0-49:18 -/
@@ -79,7 +79,7 @@ def Wrap.new (T : Type) (value : T) : Result (Wrap T) :=
/- [constants::Y]
Source: 'src/constants.rs', lines 41:0-41:22 -/
def Y_body : Result (Wrap I32) := Wrap.new I32 2#i32
-def Y : Wrap I32 := eval_global (Y_body)
+def Y : Wrap I32 := eval_global Y_body
/- [constants::unwrap_y]:
Source: 'src/constants.rs', lines 43:0-43:30 -/
@@ -89,12 +89,12 @@ def unwrap_y : Result I32 :=
/- [constants::YVAL]
Source: 'src/constants.rs', lines 47:0-47:19 -/
def YVAL_body : Result I32 := unwrap_y
-def YVAL : I32 := eval_global (YVAL_body)
+def YVAL : I32 := eval_global YVAL_body
/- [constants::get_z1::Z1]
Source: 'src/constants.rs', lines 62:4-62:17 -/
def get_z1.Z1_body : Result I32 := Result.ret 3#i32
-def get_z1.Z1 : I32 := eval_global (get_z1.Z1_body)
+def get_z1.Z1 : I32 := eval_global get_z1.Z1_body
/- [constants::get_z1]:
Source: 'src/constants.rs', lines 61:0-61:28 -/
@@ -109,17 +109,17 @@ def add (a : I32) (b : I32) : Result I32 :=
/- [constants::Q1]
Source: 'src/constants.rs', lines 74:0-74:17 -/
def Q1_body : Result I32 := Result.ret 5#i32
-def Q1 : I32 := eval_global (Q1_body)
+def Q1 : I32 := eval_global Q1_body
/- [constants::Q2]
Source: 'src/constants.rs', lines 75:0-75:17 -/
def Q2_body : Result I32 := Result.ret Q1
-def Q2 : I32 := eval_global (Q2_body)
+def Q2 : I32 := eval_global Q2_body
/- [constants::Q3]
Source: 'src/constants.rs', lines 76:0-76:17 -/
def Q3_body : Result I32 := add Q2 3#i32
-def Q3 : I32 := eval_global (Q3_body)
+def Q3 : I32 := eval_global Q3_body
/- [constants::get_z2]:
Source: 'src/constants.rs', lines 70:0-70:28 -/
@@ -132,22 +132,22 @@ def get_z2 : Result I32 :=
/- [constants::S1]
Source: 'src/constants.rs', lines 80:0-80:18 -/
def S1_body : Result U32 := Result.ret 6#u32
-def S1 : U32 := eval_global (S1_body)
+def S1 : U32 := eval_global S1_body
/- [constants::S2]
Source: 'src/constants.rs', lines 81:0-81:18 -/
def S2_body : Result U32 := incr S1
-def S2 : U32 := eval_global (S2_body)
+def S2 : U32 := eval_global S2_body
/- [constants::S3]
Source: 'src/constants.rs', lines 82:0-82:29 -/
def S3_body : Result (Pair U32 U32) := Result.ret P3
-def S3 : Pair U32 U32 := eval_global (S3_body)
+def S3 : Pair U32 U32 := eval_global S3_body
/- [constants::S4]
Source: 'src/constants.rs', lines 83:0-83:29 -/
def S4_body : Result (Pair U32 U32) := mk_pair1 7#u32 8#u32
-def S4 : Pair U32 U32 := eval_global (S4_body)
+def S4 : Pair U32 U32 := eval_global S4_body
/- [constants::V]
Source: 'src/constants.rs', lines 86:0-86:31 -/
diff --git a/tests/lean/Traits.lean b/tests/lean/Traits.lean
index 26dac252..acddd1a9 100644
--- a/tests/lean/Traits.lean
+++ b/tests/lean/Traits.lean
@@ -242,9 +242,10 @@ def ToTypetraitsBoolWrapperT (T : Type) (ToTypeBoolTInst : ToType Bool T) :
/- [traits::WithConstTy::LEN2]
Source: 'src/traits.rs', lines 164:4-164:21 -/
-def WithConstTy.LEN2_default_body : Result Usize := Result.ret 32#usize
-def WithConstTy.LEN2_default : Usize :=
- eval_global WithConstTy.LEN2_default_body
+def WithConstTy.LEN2_default_body (Self : Type) (LEN : Usize) : Result Usize :=
+ Result.ret 32#usize
+def WithConstTy.LEN2_default (Self : Type) (LEN : Usize) : Usize :=
+ eval_global (WithConstTy.LEN2_default_body Self LEN)
/- Trait declaration: [traits::WithConstTy]
Source: 'src/traits.rs', lines 161:0-161:39 -/
@@ -270,7 +271,7 @@ def WithConstTyBool32.f (i : U64) (a : Array U8 32#usize) : Result U64 :=
Source: 'src/traits.rs', lines 174:0-174:29 -/
def WithConstTyBool32 : WithConstTy Bool 32#usize := {
LEN1 := WithConstTyBool32.LEN1
- LEN2 := WithConstTy.LEN2_default
+ LEN2 := WithConstTy.LEN2_default Bool 32#usize
V := U8
W := U64
W_clause_0 := ToU64U64
@@ -467,4 +468,73 @@ def test_get_trait
(T : Type) (GetTraitInst : GetTrait T) (x : T) : Result GetTraitInst.W :=
GetTraitInst.get_w x
+/- Trait declaration: [traits::Trait]
+ Source: 'src/traits.rs', lines 310:0-310:15 -/
+structure Trait (Self : Type) where
+ LEN : Usize
+
+/- [traits::{(traits::Trait for @Array<T, N>)#14}::LEN]
+ Source: 'src/traits.rs', lines 315:4-315:20 -/
+def TraitArray.LEN_body (T : Type) (N : Usize) : Result Usize := Result.ret N
+def TraitArray.LEN (T : Type) (N : Usize) : Usize :=
+ eval_global (TraitArray.LEN_body T N)
+
+/- Trait implementation: [traits::{(traits::Trait for @Array<T, N>)#14}]
+ Source: 'src/traits.rs', lines 314:0-314:40 -/
+def TraitArray (T : Type) (N : Usize) : Trait (Array T N) := {
+ LEN := TraitArray.LEN T N
+}
+
+/- [traits::{(traits::Trait for traits::Wrapper<T>)#15}::LEN]
+ Source: 'src/traits.rs', lines 319:4-319:20 -/
+def TraittraitsWrapper.LEN_body (T : Type) (TraitInst : Trait T)
+ : Result Usize :=
+ Result.ret 0#usize
+def TraittraitsWrapper.LEN (T : Type) (TraitInst : Trait T) : Usize :=
+ eval_global (TraittraitsWrapper.LEN_body T TraitInst)
+
+/- Trait implementation: [traits::{(traits::Trait for traits::Wrapper<T>)#15}]
+ Source: 'src/traits.rs', lines 318:0-318:35 -/
+def TraittraitsWrapper (T : Type) (TraitInst : Trait T) : Trait (Wrapper T)
+ := {
+ LEN := TraittraitsWrapper.LEN T TraitInst
+}
+
+/- [traits::use_wrapper_len]:
+ Source: 'src/traits.rs', lines 322:0-322:43 -/
+def use_wrapper_len (T : Type) (TraitInst : Trait T) : Result Usize :=
+ Result.ret (TraittraitsWrapper T TraitInst).LEN
+
+/- [traits::Foo]
+ Source: 'src/traits.rs', lines 326:0-326:20 -/
+structure Foo (T U : Type) where
+ x : T
+ y : U
+
+/- [core::result::Result]
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/result.rs', lines 502:0-502:21 -/
+inductive core.result.Result (T E : Type) :=
+| Ok : T → core.result.Result T E
+| Err : E → core.result.Result T E
+
+/- [traits::{traits::Foo<T, U>#16}::FOO]
+ Source: 'src/traits.rs', lines 332:4-332:33 -/
+def Foo.FOO_body (T U : Type) (TraitInst : Trait T)
+ : Result (core.result.Result T I32) :=
+ Result.ret (core.result.Result.Err 0#i32)
+def Foo.FOO (T U : Type) (TraitInst : Trait T) : core.result.Result T I32 :=
+ eval_global (Foo.FOO_body T U TraitInst)
+
+/- [traits::use_foo1]:
+ Source: 'src/traits.rs', lines 335:0-335:48 -/
+def use_foo1
+ (T U : Type) (TraitInst : Trait T) : Result (core.result.Result T I32) :=
+ Result.ret (Foo.FOO T U TraitInst)
+
+/- [traits::use_foo2]:
+ Source: 'src/traits.rs', lines 339:0-339:48 -/
+def use_foo2
+ (T U : Type) (TraitInst : Trait U) : Result (core.result.Result U I32) :=
+ Result.ret (Foo.FOO U T TraitInst)
+
end traits