diff options
Diffstat (limited to 'tests/multiple_generics.rs')
| -rw-r--r-- | tests/multiple_generics.rs | 21 |
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 |
