error[E0277]: `fn() -> impl Future<Output = ()> {foo}` is not a future
  --> $DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:10:9
   |
LL |     bar(foo);
   |     --- ^^^ `fn() -> impl Future<Output = ()> {foo}` is not a future
   |     |
   |     required by a bound introduced by this call
   |
   = help: the trait `Future` is not implemented for fn item `fn() -> impl Future<Output = ()> {foo}`
note: required by a bound in `bar`
  --> $DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:7:16
   |
LL | fn bar(f: impl Future<Output=()>) {}
   |                ^^^^^^^^^^^^^^^^^ required by this bound in `bar`
help: use parentheses to call this function
   |
LL |     bar(foo());
   |            ++

error[E0277]: `{async closure@$DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:11:25: 11:33}` is not a future
  --> $DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:12:9
   |
LL |     bar(async_closure);
   |     --- ^^^^^^^^^^^^^ `{async closure@$DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:11:25: 11:33}` is not a future
   |     |
   |     required by a bound introduced by this call
   |
   = help: the trait `Future` is not implemented for `{async closure@$DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:11:25: 11:33}`
note: required by a bound in `bar`
  --> $DIR/async-fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:7:16
   |
LL | fn bar(f: impl Future<Output=()>) {}
   |                ^^^^^^^^^^^^^^^^^ required by this bound in `bar`

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0277`.
