error[E0277]: the trait bound `impl Future: Generator<_>` is not satisfied --> $DIR/generator-not-future.rs:31:21 | LL | takes_generator(async_fn()); | --------------- ^^^^^^^^^^ the trait `Generator<_>` is not implemented for `impl Future` | | | required by a bound introduced by this call | note: required by a bound in `takes_generator` --> $DIR/generator-not-future.rs:18:39 | LL | fn takes_generator(_g: impl Generator) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `takes_generator` error[E0277]: the trait bound `impl Future: Generator<_>` is not satisfied --> $DIR/generator-not-future.rs:33:21 | LL | takes_generator(returns_async_block()); | --------------- ^^^^^^^^^^^^^^^^^^^^^ the trait `Generator<_>` is not implemented for `impl Future` | | | required by a bound introduced by this call | note: required by a bound in `takes_generator` --> $DIR/generator-not-future.rs:18:39 | LL | fn takes_generator(_g: impl Generator) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `takes_generator` error[E0277]: the trait bound `{async block@$DIR/generator-not-future.rs:35:21: 35:29}: Generator<_>` is not satisfied --> $DIR/generator-not-future.rs:35:21 | LL | takes_generator(async {}); | --------------- ^^^^^^^^ the trait `Generator<_>` is not implemented for `{async block@$DIR/generator-not-future.rs:35:21: 35:29}` | | | required by a bound introduced by this call | note: required by a bound in `takes_generator` --> $DIR/generator-not-future.rs:18:39 | LL | fn takes_generator(_g: impl Generator) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `takes_generator` error[E0277]: `impl Generator` is not a future --> $DIR/generator-not-future.rs:39:18 | LL | takes_future(returns_generator()); | ------------ ^^^^^^^^^^^^^^^^^^^ `impl Generator` is not a future | | | required by a bound introduced by this call | = help: the trait `Future` is not implemented for `impl Generator` = note: impl Generator must be a future or must implement `IntoFuture` to be awaited note: required by a bound in `takes_future` --> $DIR/generator-not-future.rs:17:26 | LL | fn takes_future(_f: impl Future) {} | ^^^^^^^^^^^^^^^^^^^ required by this bound in `takes_future` error[E0277]: `{generator@$DIR/generator-not-future.rs:41:18: 41:23}` is not a future --> $DIR/generator-not-future.rs:41:18 | LL | takes_future(|ctx| { | _____------------_^ | | | | | required by a bound introduced by this call LL | | LL | | ctx = yield (); LL | | }); | |_____^ `{generator@$DIR/generator-not-future.rs:41:18: 41:23}` is not a future | = help: the trait `Future` is not implemented for `{generator@$DIR/generator-not-future.rs:41:18: 41:23}` = note: {generator@$DIR/generator-not-future.rs:41:18: 41:23} must be a future or must implement `IntoFuture` to be awaited note: required by a bound in `takes_future` --> $DIR/generator-not-future.rs:17:26 | LL | fn takes_future(_f: impl Future) {} | ^^^^^^^^^^^^^^^^^^^ required by this bound in `takes_future` error: aborting due to 5 previous errors For more information about this error, try `rustc --explain E0277`.