error[E0277]: the trait bound `B: Bar` is not satisfied --> $DIR/future.rs:15:5 | LL | async move { bar.bar() } | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Bar` is not implemented for `B` | note: required by a bound in `foo` --> $DIR/future.rs:14:11 | LL | fn foo(bar: B) -> FooFuture { | ^^^ required by this bound in `foo` help: consider restricting type parameter `B` | LL | type FooFuture = impl Future; | +++++ error: aborting due to previous error For more information about this error, try `rustc --explain E0277`.