summaryrefslogtreecommitdiff
path: root/tests/lean/Traits.lean
diff options
context:
space:
mode:
authorGuillaume Boisseau2024-05-24 14:37:29 +0200
committerGitHub2024-05-24 14:37:29 +0200
commit3c8ea6df20f92be9c341bbfb748f65d6c598fead (patch)
tree63429c0be3daff353dbc6d667618e4028490cc79 /tests/lean/Traits.lean
parentc6c9e351546a723e62cc21579b2359dba3bfb56f (diff)
parent41f78066da5cc10af6312ab1bef71e45ff460688 (diff)
Merge pull request #197 from AeneasVerif/test-harness3
Diffstat (limited to 'tests/lean/Traits.lean')
-rw-r--r--tests/lean/Traits.lean166
1 files changed, 83 insertions, 83 deletions
diff --git a/tests/lean/Traits.lean b/tests/lean/Traits.lean
index 3746d494..32f84676 100644
--- a/tests/lean/Traits.lean
+++ b/tests/lean/Traits.lean
@@ -6,29 +6,29 @@ open Primitives
namespace traits
/- Trait declaration: [traits::BoolTrait]
- Source: 'src/traits.rs', lines 1:0-1:19 -/
+ Source: 'tests/src/traits.rs', lines 1:0-1:19 -/
structure BoolTrait (Self : Type) where
get_bool : Self → Result Bool
/- [traits::{(traits::BoolTrait for bool)}::get_bool]:
- Source: 'src/traits.rs', lines 12:4-12:30 -/
+ Source: 'tests/src/traits.rs', lines 12:4-12:30 -/
def BoolTraitBool.get_bool (self : Bool) : Result Bool :=
Result.ok self
/- Trait implementation: [traits::{(traits::BoolTrait for bool)}]
- Source: 'src/traits.rs', lines 11:0-11:23 -/
+ Source: 'tests/src/traits.rs', lines 11:0-11:23 -/
def BoolTraitBool : BoolTrait Bool := {
get_bool := BoolTraitBool.get_bool
}
/- [traits::BoolTrait::ret_true]:
- Source: 'src/traits.rs', lines 6:4-6:30 -/
+ Source: 'tests/src/traits.rs', lines 6:4-6:30 -/
def BoolTrait.ret_true
{Self : Type} (self_clause : BoolTrait Self) (self : Self) : Result Bool :=
Result.ok true
/- [traits::test_bool_trait_bool]:
- Source: 'src/traits.rs', lines 17:0-17:44 -/
+ Source: 'tests/src/traits.rs', lines 17:0-17:44 -/
def test_bool_trait_bool (x : Bool) : Result Bool :=
do
let b ← BoolTraitBool.get_bool x
@@ -37,20 +37,20 @@ def test_bool_trait_bool (x : Bool) : Result Bool :=
else Result.ok false
/- [traits::{(traits::BoolTrait for core::option::Option<T>)#1}::get_bool]:
- Source: 'src/traits.rs', lines 23:4-23:30 -/
+ Source: 'tests/src/traits.rs', lines 23:4-23:30 -/
def BoolTraitOption.get_bool (T : Type) (self : Option T) : Result Bool :=
match self with
| none => Result.ok false
| some _ => Result.ok true
/- Trait implementation: [traits::{(traits::BoolTrait for core::option::Option<T>)#1}]
- Source: 'src/traits.rs', lines 22:0-22:31 -/
+ Source: 'tests/src/traits.rs', lines 22:0-22:31 -/
def BoolTraitOption (T : Type) : BoolTrait (Option T) := {
get_bool := BoolTraitOption.get_bool T
}
/- [traits::test_bool_trait_option]:
- Source: 'src/traits.rs', lines 31:0-31:54 -/
+ Source: 'tests/src/traits.rs', lines 31:0-31:54 -/
def test_bool_trait_option (T : Type) (x : Option T) : Result Bool :=
do
let b ← BoolTraitOption.get_bool T x
@@ -59,29 +59,29 @@ def test_bool_trait_option (T : Type) (x : Option T) : Result Bool :=
else Result.ok false
/- [traits::test_bool_trait]:
- Source: 'src/traits.rs', lines 35:0-35:50 -/
+ Source: 'tests/src/traits.rs', lines 35:0-35:50 -/
def test_bool_trait
(T : Type) (BoolTraitInst : BoolTrait T) (x : T) : Result Bool :=
BoolTraitInst.get_bool x
/- Trait declaration: [traits::ToU64]
- Source: 'src/traits.rs', lines 39:0-39:15 -/
+ Source: 'tests/src/traits.rs', lines 39:0-39:15 -/
structure ToU64 (Self : Type) where
to_u64 : Self → Result U64
/- [traits::{(traits::ToU64 for u64)#2}::to_u64]:
- Source: 'src/traits.rs', lines 44:4-44:26 -/
+ Source: 'tests/src/traits.rs', lines 44:4-44:26 -/
def ToU64U64.to_u64 (self : U64) : Result U64 :=
Result.ok self
/- Trait implementation: [traits::{(traits::ToU64 for u64)#2}]
- Source: 'src/traits.rs', lines 43:0-43:18 -/
+ Source: 'tests/src/traits.rs', lines 43:0-43:18 -/
def ToU64U64 : ToU64 U64 := {
to_u64 := ToU64U64.to_u64
}
/- [traits::{(traits::ToU64 for (A, A))#3}::to_u64]:
- Source: 'src/traits.rs', lines 50:4-50:26 -/
+ Source: 'tests/src/traits.rs', lines 50:4-50:26 -/
def ToU64Pair.to_u64
(A : Type) (ToU64Inst : ToU64 A) (self : (A × A)) : Result U64 :=
do
@@ -91,78 +91,78 @@ def ToU64Pair.to_u64
i + i1
/- Trait implementation: [traits::{(traits::ToU64 for (A, A))#3}]
- Source: 'src/traits.rs', lines 49:0-49:31 -/
+ Source: 'tests/src/traits.rs', lines 49:0-49:31 -/
def ToU64Pair (A : Type) (ToU64Inst : ToU64 A) : ToU64 (A × A) := {
to_u64 := ToU64Pair.to_u64 A ToU64Inst
}
/- [traits::f]:
- Source: 'src/traits.rs', lines 55:0-55:36 -/
+ Source: 'tests/src/traits.rs', lines 55:0-55:36 -/
def f (T : Type) (ToU64Inst : ToU64 T) (x : (T × T)) : Result U64 :=
ToU64Pair.to_u64 T ToU64Inst x
/- [traits::g]:
- Source: 'src/traits.rs', lines 59:0-61:18 -/
+ Source: 'tests/src/traits.rs', lines 59:0-61:18 -/
def g
(T : Type) (ToU64PairInst : ToU64 (T × T)) (x : (T × T)) : Result U64 :=
ToU64PairInst.to_u64 x
/- [traits::h0]:
- Source: 'src/traits.rs', lines 66:0-66:24 -/
+ Source: 'tests/src/traits.rs', lines 66:0-66:24 -/
def h0 (x : U64) : Result U64 :=
ToU64U64.to_u64 x
/- [traits::Wrapper]
- Source: 'src/traits.rs', lines 70:0-70:21 -/
+ Source: 'tests/src/traits.rs', lines 70:0-70:21 -/
structure Wrapper (T : Type) where
x : T
/- [traits::{(traits::ToU64 for traits::Wrapper<T>)#4}::to_u64]:
- Source: 'src/traits.rs', lines 75:4-75:26 -/
+ Source: 'tests/src/traits.rs', lines 75:4-75:26 -/
def ToU64traitsWrapper.to_u64
(T : Type) (ToU64Inst : ToU64 T) (self : Wrapper T) : Result U64 :=
ToU64Inst.to_u64 self.x
/- Trait implementation: [traits::{(traits::ToU64 for traits::Wrapper<T>)#4}]
- Source: 'src/traits.rs', lines 74:0-74:35 -/
+ Source: 'tests/src/traits.rs', lines 74:0-74:35 -/
def ToU64traitsWrapper (T : Type) (ToU64Inst : ToU64 T) : ToU64 (Wrapper T)
:= {
to_u64 := ToU64traitsWrapper.to_u64 T ToU64Inst
}
/- [traits::h1]:
- Source: 'src/traits.rs', lines 80:0-80:33 -/
+ Source: 'tests/src/traits.rs', lines 80:0-80:33 -/
def h1 (x : Wrapper U64) : Result U64 :=
ToU64traitsWrapper.to_u64 U64 ToU64U64 x
/- [traits::h2]:
- Source: 'src/traits.rs', lines 84:0-84:41 -/
+ Source: 'tests/src/traits.rs', lines 84:0-84:41 -/
def h2 (T : Type) (ToU64Inst : ToU64 T) (x : Wrapper T) : Result U64 :=
ToU64traitsWrapper.to_u64 T ToU64Inst x
/- Trait declaration: [traits::ToType]
- Source: 'src/traits.rs', lines 88:0-88:19 -/
+ Source: 'tests/src/traits.rs', lines 88:0-88:19 -/
structure ToType (Self T : Type) where
to_type : Self → Result T
/- [traits::{(traits::ToType<bool> for u64)#5}::to_type]:
- Source: 'src/traits.rs', lines 93:4-93:28 -/
+ Source: 'tests/src/traits.rs', lines 93:4-93:28 -/
def ToTypeU64Bool.to_type (self : U64) : Result Bool :=
Result.ok (self > 0#u64)
/- Trait implementation: [traits::{(traits::ToType<bool> for u64)#5}]
- Source: 'src/traits.rs', lines 92:0-92:25 -/
+ Source: 'tests/src/traits.rs', lines 92:0-92:25 -/
def ToTypeU64Bool : ToType U64 Bool := {
to_type := ToTypeU64Bool.to_type
}
/- Trait declaration: [traits::OfType]
- Source: 'src/traits.rs', lines 98:0-98:16 -/
+ Source: 'tests/src/traits.rs', lines 98:0-98:16 -/
structure OfType (Self : Type) where
of_type : forall (T : Type) (ToTypeInst : ToType T Self), T → Result Self
/- [traits::h3]:
- Source: 'src/traits.rs', lines 104:0-104:50 -/
+ Source: 'tests/src/traits.rs', lines 104:0-104:50 -/
def h3
(T1 T2 : Type) (OfTypeInst : OfType T1) (ToTypeInst : ToType T2 T1)
(y : T2) :
@@ -171,13 +171,13 @@ def h3
OfTypeInst.of_type T2 ToTypeInst y
/- Trait declaration: [traits::OfTypeBis]
- Source: 'src/traits.rs', lines 109:0-109:36 -/
+ Source: 'tests/src/traits.rs', lines 109:0-109:36 -/
structure OfTypeBis (Self T : Type) where
ToTypeInst : ToType T Self
of_type : T → Result Self
/- [traits::h4]:
- Source: 'src/traits.rs', lines 118:0-118:57 -/
+ Source: 'tests/src/traits.rs', lines 118:0-118:57 -/
def h4
(T1 T2 : Type) (OfTypeBisInst : OfTypeBis T1 T2) (ToTypeInst : ToType T2 T1)
(y : T2) :
@@ -186,33 +186,33 @@ def h4
OfTypeBisInst.of_type y
/- [traits::TestType]
- Source: 'src/traits.rs', lines 122:0-122:22 -/
+ Source: 'tests/src/traits.rs', lines 122:0-122:22 -/
@[reducible] def TestType (T : Type) := T
/- [traits::{traits::TestType<T>#6}::test::TestType1]
- Source: 'src/traits.rs', lines 127:8-127:24 -/
+ Source: 'tests/src/traits.rs', lines 127:8-127:24 -/
@[reducible] def TestType.test.TestType1 := U64
/- Trait declaration: [traits::{traits::TestType<T>#6}::test::TestTrait]
- Source: 'src/traits.rs', lines 128:8-128:23 -/
+ Source: 'tests/src/traits.rs', lines 128:8-128:23 -/
structure TestType.test.TestTrait (Self : Type) where
test : Self → Result Bool
/- [traits::{traits::TestType<T>#6}::test::{(traits::{traits::TestType<T>#6}::test::TestTrait for traits::{traits::TestType<T>#6}::test::TestType1)}::test]:
- Source: 'src/traits.rs', lines 139:12-139:34 -/
+ Source: 'tests/src/traits.rs', lines 139:12-139:34 -/
def TestType.test.TestTraittraitsTestTypetestTestType1.test
(self : TestType.test.TestType1) : Result Bool :=
Result.ok (self > 1#u64)
/- Trait implementation: [traits::{traits::TestType<T>#6}::test::{(traits::{traits::TestType<T>#6}::test::TestTrait for traits::{traits::TestType<T>#6}::test::TestType1)}]
- Source: 'src/traits.rs', lines 138:8-138:36 -/
+ Source: 'tests/src/traits.rs', lines 138:8-138:36 -/
def TestType.test.TestTraittraitsTestTypetestTestType1 :
TestType.test.TestTrait TestType.test.TestType1 := {
test := TestType.test.TestTraittraitsTestTypetestTestType1.test
}
/- [traits::{traits::TestType<T>#6}::test]:
- Source: 'src/traits.rs', lines 126:4-126:36 -/
+ Source: 'tests/src/traits.rs', lines 126:4-126:36 -/
def TestType.test
(T : Type) (ToU64Inst : ToU64 T) (self : TestType T) (x : T) : Result Bool :=
do
@@ -222,11 +222,11 @@ def TestType.test
else Result.ok false
/- [traits::BoolWrapper]
- Source: 'src/traits.rs', lines 150:0-150:22 -/
+ Source: 'tests/src/traits.rs', lines 150:0-150:22 -/
@[reducible] def BoolWrapper := Bool
/- [traits::{(traits::ToType<T> for traits::BoolWrapper)#7}::to_type]:
- Source: 'src/traits.rs', lines 156:4-156:25 -/
+ Source: 'tests/src/traits.rs', lines 156:4-156:25 -/
def ToTypetraitsBoolWrapperT.to_type
(T : Type) (ToTypeBoolTInst : ToType Bool T) (self : BoolWrapper) :
Result T
@@ -234,21 +234,21 @@ def ToTypetraitsBoolWrapperT.to_type
ToTypeBoolTInst.to_type self
/- Trait implementation: [traits::{(traits::ToType<T> for traits::BoolWrapper)#7}]
- Source: 'src/traits.rs', lines 152:0-152:33 -/
+ Source: 'tests/src/traits.rs', lines 152:0-152:33 -/
def ToTypetraitsBoolWrapperT (T : Type) (ToTypeBoolTInst : ToType Bool T) :
ToType BoolWrapper T := {
to_type := ToTypetraitsBoolWrapperT.to_type T ToTypeBoolTInst
}
/- [traits::WithConstTy::LEN2]
- Source: 'src/traits.rs', lines 164:4-164:21 -/
+ Source: 'tests/src/traits.rs', lines 164:4-164:21 -/
def WithConstTy.LEN2_default_body (Self : Type) (LEN : Usize) : Result Usize :=
Result.ok 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 -/
+ Source: 'tests/src/traits.rs', lines 161:0-161:39 -/
structure WithConstTy (Self : Type) (LEN : Usize) where
LEN1 : Usize
LEN2 : Usize
@@ -258,17 +258,17 @@ structure WithConstTy (Self : Type) (LEN : Usize) where
f : W → Array U8 LEN → Result W
/- [traits::{(traits::WithConstTy<32: usize> for bool)#8}::LEN1]
- Source: 'src/traits.rs', lines 175:4-175:21 -/
+ Source: 'tests/src/traits.rs', lines 175:4-175:21 -/
def WithConstTyBool32.LEN1_body : Result Usize := Result.ok 12#usize
def WithConstTyBool32.LEN1 : Usize := eval_global WithConstTyBool32.LEN1_body
/- [traits::{(traits::WithConstTy<32: usize> for bool)#8}::f]:
- Source: 'src/traits.rs', lines 180:4-180:39 -/
+ Source: 'tests/src/traits.rs', lines 180:4-180:39 -/
def WithConstTyBool32.f (i : U64) (a : Array U8 32#usize) : Result U64 :=
Result.ok i
/- Trait implementation: [traits::{(traits::WithConstTy<32: usize> for bool)#8}]
- Source: 'src/traits.rs', lines 174:0-174:29 -/
+ Source: 'tests/src/traits.rs', lines 174:0-174:29 -/
def WithConstTyBool32 : WithConstTy Bool 32#usize := {
LEN1 := WithConstTyBool32.LEN1
LEN2 := WithConstTy.LEN2_default Bool 32#usize
@@ -279,7 +279,7 @@ def WithConstTyBool32 : WithConstTy Bool 32#usize := {
}
/- [traits::use_with_const_ty1]:
- Source: 'src/traits.rs', lines 183:0-183:75 -/
+ Source: 'tests/src/traits.rs', lines 183:0-183:75 -/
def use_with_const_ty1
(H : Type) (LEN : Usize) (WithConstTyInst : WithConstTy H LEN) :
Result Usize
@@ -287,7 +287,7 @@ def use_with_const_ty1
Result.ok WithConstTyInst.LEN1
/- [traits::use_with_const_ty2]:
- Source: 'src/traits.rs', lines 187:0-187:73 -/
+ Source: 'tests/src/traits.rs', lines 187:0-187:73 -/
def use_with_const_ty2
(H : Type) (LEN : Usize) (WithConstTyInst : WithConstTy H LEN)
(w : WithConstTyInst.W) :
@@ -296,7 +296,7 @@ def use_with_const_ty2
Result.ok ()
/- [traits::use_with_const_ty3]:
- Source: 'src/traits.rs', lines 189:0-189:80 -/
+ Source: 'tests/src/traits.rs', lines 189:0-189:80 -/
def use_with_const_ty3
(H : Type) (LEN : Usize) (WithConstTyInst : WithConstTy H LEN)
(x : WithConstTyInst.W) :
@@ -305,12 +305,12 @@ def use_with_const_ty3
WithConstTyInst.W_clause_0.to_u64 x
/- [traits::test_where1]:
- Source: 'src/traits.rs', lines 193:0-193:40 -/
+ Source: 'tests/src/traits.rs', lines 193:0-193:40 -/
def test_where1 (T : Type) (_x : T) : Result Unit :=
Result.ok ()
/- [traits::test_where2]:
- Source: 'src/traits.rs', lines 194:0-194:57 -/
+ Source: 'tests/src/traits.rs', lines 194:0-194:57 -/
def test_where2
(T : Type) (WithConstTyT32Inst : WithConstTy T 32#usize) (_x : U32) :
Result Unit
@@ -318,30 +318,30 @@ def test_where2
Result.ok ()
/- Trait declaration: [traits::ParentTrait0]
- Source: 'src/traits.rs', lines 200:0-200:22 -/
+ Source: 'tests/src/traits.rs', lines 200:0-200:22 -/
structure ParentTrait0 (Self : Type) where
W : Type
get_name : Self → Result String
get_w : Self → Result W
/- Trait declaration: [traits::ParentTrait1]
- Source: 'src/traits.rs', lines 205:0-205:22 -/
+ Source: 'tests/src/traits.rs', lines 205:0-205:22 -/
structure ParentTrait1 (Self : Type) where
/- Trait declaration: [traits::ChildTrait]
- Source: 'src/traits.rs', lines 206:0-206:49 -/
+ Source: 'tests/src/traits.rs', lines 206:0-206:49 -/
structure ChildTrait (Self : Type) where
ParentTrait0Inst : ParentTrait0 Self
ParentTrait1Inst : ParentTrait1 Self
/- [traits::test_child_trait1]:
- Source: 'src/traits.rs', lines 209:0-209:56 -/
+ Source: 'tests/src/traits.rs', lines 209:0-209:56 -/
def test_child_trait1
(T : Type) (ChildTraitInst : ChildTrait T) (x : T) : Result String :=
ChildTraitInst.ParentTrait0Inst.get_name x
/- [traits::test_child_trait2]:
- Source: 'src/traits.rs', lines 213:0-213:54 -/
+ Source: 'tests/src/traits.rs', lines 213:0-213:54 -/
def test_child_trait2
(T : Type) (ChildTraitInst : ChildTrait T) (x : T) :
Result ChildTraitInst.ParentTrait0Inst.W
@@ -349,7 +349,7 @@ def test_child_trait2
ChildTraitInst.ParentTrait0Inst.get_w x
/- [traits::order1]:
- Source: 'src/traits.rs', lines 219:0-219:59 -/
+ Source: 'tests/src/traits.rs', lines 219:0-219:59 -/
def order1
(T U : Type) (ParentTrait0Inst : ParentTrait0 T) (ParentTrait0Inst1 :
ParentTrait0 U) :
@@ -358,28 +358,28 @@ def order1
Result.ok ()
/- Trait declaration: [traits::ChildTrait1]
- Source: 'src/traits.rs', lines 222:0-222:35 -/
+ Source: 'tests/src/traits.rs', lines 222:0-222:35 -/
structure ChildTrait1 (Self : Type) where
ParentTrait1Inst : ParentTrait1 Self
/- Trait implementation: [traits::{(traits::ParentTrait1 for usize)#9}]
- Source: 'src/traits.rs', lines 224:0-224:27 -/
+ Source: 'tests/src/traits.rs', lines 224:0-224:27 -/
def ParentTrait1Usize : ParentTrait1 Usize := {
}
/- Trait implementation: [traits::{(traits::ChildTrait1 for usize)#10}]
- Source: 'src/traits.rs', lines 225:0-225:26 -/
+ Source: 'tests/src/traits.rs', lines 225:0-225:26 -/
def ChildTrait1Usize : ChildTrait1 Usize := {
ParentTrait1Inst := ParentTrait1Usize
}
/- Trait declaration: [traits::Iterator]
- Source: 'src/traits.rs', lines 229:0-229:18 -/
+ Source: 'tests/src/traits.rs', lines 229:0-229:18 -/
structure Iterator (Self : Type) where
Item : Type
/- Trait declaration: [traits::IntoIterator]
- Source: 'src/traits.rs', lines 233:0-233:22 -/
+ Source: 'tests/src/traits.rs', lines 233:0-233:22 -/
structure IntoIterator (Self : Type) where
Item : Type
IntoIter : Type
@@ -387,106 +387,106 @@ structure IntoIterator (Self : Type) where
into_iter : Self → Result IntoIter
/- Trait declaration: [traits::FromResidual]
- Source: 'src/traits.rs', lines 250:0-250:21 -/
+ Source: 'tests/src/traits.rs', lines 250:0-250:21 -/
structure FromResidual (Self T : Type) where
/- Trait declaration: [traits::Try]
- Source: 'src/traits.rs', lines 246:0-246:48 -/
+ Source: 'tests/src/traits.rs', lines 246:0-246:48 -/
structure Try (Self : Type) where
Residual : Type
FromResidualSelftraitsTryResidualInst : FromResidual Self Residual
/- Trait declaration: [traits::WithTarget]
- Source: 'src/traits.rs', lines 252:0-252:20 -/
+ Source: 'tests/src/traits.rs', lines 252:0-252:20 -/
structure WithTarget (Self : Type) where
Target : Type
/- Trait declaration: [traits::ParentTrait2]
- Source: 'src/traits.rs', lines 256:0-256:22 -/
+ Source: 'tests/src/traits.rs', lines 256:0-256:22 -/
structure ParentTrait2 (Self : Type) where
U : Type
U_clause_0 : WithTarget U
/- Trait declaration: [traits::ChildTrait2]
- Source: 'src/traits.rs', lines 260:0-260:35 -/
+ Source: 'tests/src/traits.rs', lines 260:0-260:35 -/
structure ChildTrait2 (Self : Type) where
ParentTrait2Inst : ParentTrait2 Self
convert : ParentTrait2Inst.U → Result ParentTrait2Inst.U_clause_0.Target
/- Trait implementation: [traits::{(traits::WithTarget for u32)#11}]
- Source: 'src/traits.rs', lines 264:0-264:23 -/
+ Source: 'tests/src/traits.rs', lines 264:0-264:23 -/
def WithTargetU32 : WithTarget U32 := {
Target := U32
}
/- Trait implementation: [traits::{(traits::ParentTrait2 for u32)#12}]
- Source: 'src/traits.rs', lines 268:0-268:25 -/
+ Source: 'tests/src/traits.rs', lines 268:0-268:25 -/
def ParentTrait2U32 : ParentTrait2 U32 := {
U := U32
U_clause_0 := WithTargetU32
}
/- [traits::{(traits::ChildTrait2 for u32)#13}::convert]:
- Source: 'src/traits.rs', lines 273:4-273:29 -/
+ Source: 'tests/src/traits.rs', lines 273:4-273:29 -/
def ChildTrait2U32.convert (x : U32) : Result U32 :=
Result.ok x
/- Trait implementation: [traits::{(traits::ChildTrait2 for u32)#13}]
- Source: 'src/traits.rs', lines 272:0-272:24 -/
+ Source: 'tests/src/traits.rs', lines 272:0-272:24 -/
def ChildTrait2U32 : ChildTrait2 U32 := {
ParentTrait2Inst := ParentTrait2U32
convert := ChildTrait2U32.convert
}
/- Trait declaration: [traits::CFnOnce]
- Source: 'src/traits.rs', lines 286:0-286:23 -/
+ Source: 'tests/src/traits.rs', lines 286:0-286:23 -/
structure CFnOnce (Self Args : Type) where
Output : Type
call_once : Self → Args → Result Output
/- Trait declaration: [traits::CFnMut]
- Source: 'src/traits.rs', lines 292:0-292:37 -/
+ Source: 'tests/src/traits.rs', lines 292:0-292:37 -/
structure CFnMut (Self Args : Type) where
CFnOnceInst : CFnOnce Self Args
call_mut : Self → Args → Result (CFnOnceInst.Output × Self)
/- Trait declaration: [traits::CFn]
- Source: 'src/traits.rs', lines 296:0-296:33 -/
+ Source: 'tests/src/traits.rs', lines 296:0-296:33 -/
structure CFn (Self Args : Type) where
CFnMutInst : CFnMut Self Args
call : Self → Args → Result CFnMutInst.CFnOnceInst.Output
/- Trait declaration: [traits::GetTrait]
- Source: 'src/traits.rs', lines 300:0-300:18 -/
+ Source: 'tests/src/traits.rs', lines 300:0-300:18 -/
structure GetTrait (Self : Type) where
W : Type
get_w : Self → Result W
/- [traits::test_get_trait]:
- Source: 'src/traits.rs', lines 305:0-305:49 -/
+ Source: 'tests/src/traits.rs', lines 305:0-305:49 -/
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 -/
+ Source: 'tests/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 -/
+ Source: 'tests/src/traits.rs', lines 315:4-315:20 -/
def TraitArray.LEN_body (T : Type) (N : Usize) : Result Usize := Result.ok 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 -/
+ Source: 'tests/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 -/
+ Source: 'tests/src/traits.rs', lines 319:4-319:20 -/
def TraittraitsWrapper.LEN_body (T : Type) (TraitInst : Trait T)
: Result Usize :=
Result.ok 0#usize
@@ -494,19 +494,19 @@ 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 -/
+ Source: 'tests/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 -/
+ Source: 'tests/src/traits.rs', lines 322:0-322:43 -/
def use_wrapper_len (T : Type) (TraitInst : Trait T) : Result Usize :=
Result.ok (TraittraitsWrapper T TraitInst).LEN
/- [traits::Foo]
- Source: 'src/traits.rs', lines 326:0-326:20 -/
+ Source: 'tests/src/traits.rs', lines 326:0-326:20 -/
structure Foo (T U : Type) where
x : T
y : U
@@ -519,7 +519,7 @@ inductive core.result.Result (T E : Type) :=
| Err : E → core.result.Result T E
/- [traits::{traits::Foo<T, U>#16}::FOO]
- Source: 'src/traits.rs', lines 332:4-332:33 -/
+ Source: 'tests/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.ok (core.result.Result.Err 0#i32)
@@ -527,13 +527,13 @@ 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 -/
+ Source: 'tests/src/traits.rs', lines 335:0-335:48 -/
def use_foo1
(T U : Type) (TraitInst : Trait T) : Result (core.result.Result T I32) :=
Result.ok (Foo.FOO T U TraitInst)
/- [traits::use_foo2]:
- Source: 'src/traits.rs', lines 339:0-339:48 -/
+ Source: 'tests/src/traits.rs', lines 339:0-339:48 -/
def use_foo2
(T U : Type) (TraitInst : Trait U) : Result (core.result.Result U I32) :=
Result.ok (Foo.FOO U T TraitInst)