error[E0308]: mismatched types --> $DIR/issue-99914.rs:9:27 | LL | t.and_then(|t| -> _ { bar(t) }); | ^^^^^^ expected enum `Result`, found opaque type | note: while checking the return type of the `async fn` --> $DIR/issue-99914.rs:13:23 | LL | async fn bar(t: Okay) {} | ^ checked the `Output` of this `async fn`, found opaque type = note: expected enum `Result<_, Error>` found opaque type `impl Future` help: try wrapping the expression in `Ok` | LL | t.and_then(|t| -> _ { Ok(bar(t)) }); | +++ + error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.