error[E0277]: `impl Future<Output = Result<i32, ()>>` cannot be bound with `<-` inside an `hdo!` async block
--> tests/ui/fail/async_bind_without_await.rs:9:14
|
8 | let _ = hdo!(async {
| _____________-
9 | | x <- fetch();
| | ^^^^^^^ expected `Option` or `Result`
10 | |
11 | | pure x
12 | | });
| |______- required by a bound introduced by this call
|
= help: the trait `raskell::__private::HdoAsyncBind<_>` is not implemented for `impl Future<Output = Result<i32, ()>>`
= note: an `hdo!` async block binds `Option` and `Result`; lists have no short-circuiting form
= note: to await a future, write the `.await` yourself: `x <- fetch().await;`
help: the following other types implement trait `raskell::__private::HdoAsyncBind<B>`
--> src/__private.rs
|
| / impl<T, B> HdoAsyncBind<B> for Option<T>
| | where
| | B: HdoShortCircuit<NoneResidual>,
| |_____________________________________^ `Option<T>`
...
| / impl<T, E, B> HdoAsyncBind<B> for Result<T, E>
| | where
| | B: HdoShortCircuit<E>,
| |__________________________^ `Result<T, E>`