diff --git a/src/func/instances/composition.rs b/src/func/instances/composition.rs index b378a4a..81d960e 100644 --- a/src/func/instances/composition.rs +++ b/src/func/instances/composition.rs @@ -181,9 +181,9 @@ impl<'a, U: SharedFunctor<'a> + Functor<'a>, V: SharedFunctor<'a>> SharedFunctor mod composition_tests { use std::sync::Arc; - use crate::func::instances::{option::OptionInstance, result::ResultInstance}; + use crate::func::instances::{option::*, result::*, tryfuture::TryFutureInstance}; - use super::{test_suite, tests, CompositionInstance}; + use super::*; type T = CompositionInstance>; @@ -219,4 +219,17 @@ mod composition_tests { fn shared_follows_laws() { test_suite::shared_follows_laws::().unwrap(); } + + #[test] + fn select_second() { + type T = CompositionInstance, ResultInstance>; + + let res = futures::executor::block_on(T::select( + Box::pin(futures::future::pending::, i32>>()), + Box::pin(futures::future::ready(Ok(Ok(2)))), + )) + .unwrap() + .unwrap(); + assert!(matches!(res, Selected::B(_, 2))); + } }