error[E0277]: the trait bound `[generator@$DIR/generator.rs:18:21: 18:23]: Generator` is not satisfied --> $DIR/generator.rs:18:21 | LL | needs_generator(|| { | _____---------------_^ | | | | | required by a bound introduced by this call LL | | LL | | LL | | LL | | yield (); LL | | }); | |_____^ the trait `Generator` is not implemented for `[generator@$DIR/generator.rs:18:21: 18:23]` | note: required by a bound in `needs_generator` --> $DIR/generator.rs:14:28 | LL | fn needs_generator(_: impl Generator) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `needs_generator` error[E0271]: type mismatch resolving `<[generator@$DIR/generator.rs:18:21: 18:23] as Generator>::Yield == B` --> $DIR/generator.rs:18:21 | LL | needs_generator(|| { | _____---------------_^ | | | | | required by a bound introduced by this call LL | | LL | | LL | | LL | | yield (); LL | | }); | |_____^ types differ | note: required by a bound in `needs_generator` --> $DIR/generator.rs:14:41 | LL | fn needs_generator(_: impl Generator) {} | ^^^^^^^^^ required by this bound in `needs_generator` error[E0271]: type mismatch resolving `<[generator@$DIR/generator.rs:18:21: 18:23] as Generator>::Return == C` --> $DIR/generator.rs:18:21 | LL | needs_generator(|| { | _____---------------_^ | | | | | required by a bound introduced by this call LL | | LL | | LL | | LL | | yield (); LL | | }); | |_____^ types differ | note: required by a bound in `needs_generator` --> $DIR/generator.rs:14:52 | LL | fn needs_generator(_: impl Generator) {} | ^^^^^^^^^^ required by this bound in `needs_generator` error: aborting due to 3 previous errors Some errors have detailed explanations: E0271, E0277. For more information about an error, try `rustc --explain E0271`.