aboutsummaryrefslogtreecommitdiff
path: root/tests/multiple_generics.rs
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2023-03-21 00:10:48 +0100
committerAndreas Grois <andi@grois.info>2023-03-21 00:10:48 +0100
commite9d126e7ead84fc5319252717d70ce5954aa8526 (patch)
tree0672a0119c61f2f350d77b84d2a5d7fe7c96cc4f /tests/multiple_generics.rs
parent22154f14dd11f45230491cf0e93038ccfee8c85a (diff)
Multiple generic parameters now with lifetimes.
Diffstat (limited to 'tests/multiple_generics.rs')
-rw-r--r--tests/multiple_generics.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/multiple_generics.rs b/tests/multiple_generics.rs
index ce13414..2f560dd 100644
--- a/tests/multiple_generics.rs
+++ b/tests/multiple_generics.rs
@@ -62,4 +62,25 @@ fn test_multiple_generics2(){
},
_ => unreachable!()
}
+}
+
+#[test]
+fn test_multiple_generics3(){
+ let m : FreeResult<_, String> = FreeResult::lift_f(Ok(37u32));
+ let f : FreeResult<_, String> = FreeResult::Pure(|x : u32| -> f32 {(x as f32)*0.5f32}).fmap(Into::into);
+ let m = m.apply(f);
+ match m{
+ FreeResult::Free(m) => {
+ match &*m{
+ Ok(k) => {
+ match k {
+ FreeResult::Pure(k) => assert_eq!(18.5f32, *k),
+ FreeResult::Free(_) => unreachable!(),
+ }
+ }
+ Err(_) => unreachable!(),
+ }
+ },
+ _ => unreachable!()
+ }
} \ No newline at end of file