| error: coroutine cannot be sent between threads safely |
| --> $DIR/parent-expression.rs:23:13 |
| | |
| LL | assert_send(g); |
| | ^^^^^^^^^^^^^^ coroutine is not `Send` |
| ... |
| LL | / type_combinations!( |
| LL | | // OK |
| LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; |
| LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though |
| ... | |
| LL | | }; |
| LL | | ); |
| | |_____- in this macro invocation |
| | |
| = help: within `{coroutine@$DIR/parent-expression.rs:17:34: 17:41}`, the trait `Send` is not implemented for `derived_drop::Client` |
| note: coroutine is not `Send` as this value is used across a yield |
| --> $DIR/parent-expression.rs:21:22 |
| | |
| LL | let g = #[coroutine] move || match drop($name::Client { ..$name::Client::default() }) { |
| | ------------------------ has type `derived_drop::Client` which is not `Send` |
| ... |
| LL | _ => yield, |
| | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later |
| ... |
| LL | / type_combinations!( |
| LL | | // OK |
| LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; |
| LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though |
| ... | |
| LL | | }; |
| LL | | ); |
| | |_____- in this macro invocation |
| note: required by a bound in `assert_send` |
| --> $DIR/parent-expression.rs:40:19 |
| | |
| LL | fn assert_send<T: Send>(_thing: T) {} |
| | ^^^^ required by this bound in `assert_send` |
| = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info) |
| |
| error: coroutine cannot be sent between threads safely |
| --> $DIR/parent-expression.rs:23:13 |
| | |
| LL | assert_send(g); |
| | ^^^^^^^^^^^^^^ coroutine is not `Send` |
| ... |
| LL | / type_combinations!( |
| LL | | // OK |
| LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; |
| LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though |
| ... | |
| LL | | }; |
| LL | | ); |
| | |_____- in this macro invocation |
| | |
| = help: within `{coroutine@$DIR/parent-expression.rs:17:34: 17:41}`, the trait `Send` is not implemented for `significant_drop::Client` |
| note: coroutine is not `Send` as this value is used across a yield |
| --> $DIR/parent-expression.rs:21:22 |
| | |
| LL | let g = #[coroutine] move || match drop($name::Client { ..$name::Client::default() }) { |
| | ------------------------ has type `significant_drop::Client` which is not `Send` |
| ... |
| LL | _ => yield, |
| | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later |
| ... |
| LL | / type_combinations!( |
| LL | | // OK |
| LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; |
| LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though |
| ... | |
| LL | | }; |
| LL | | ); |
| | |_____- in this macro invocation |
| note: required by a bound in `assert_send` |
| --> $DIR/parent-expression.rs:40:19 |
| | |
| LL | fn assert_send<T: Send>(_thing: T) {} |
| | ^^^^ required by this bound in `assert_send` |
| = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info) |
| |
| error: coroutine cannot be sent between threads safely |
| --> $DIR/parent-expression.rs:23:13 |
| | |
| LL | assert_send(g); |
| | ^^^^^^^^^^^^^^ coroutine is not `Send` |
| ... |
| LL | / type_combinations!( |
| LL | | // OK |
| LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; |
| LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though |
| ... | |
| LL | | }; |
| LL | | ); |
| | |_____- in this macro invocation |
| | |
| = help: within `{coroutine@$DIR/parent-expression.rs:17:34: 17:41}`, the trait `Send` is not implemented for `insignificant_dtor::Client` |
| note: coroutine is not `Send` as this value is used across a yield |
| --> $DIR/parent-expression.rs:21:22 |
| | |
| LL | let g = #[coroutine] move || match drop($name::Client { ..$name::Client::default() }) { |
| | ------------------------ has type `insignificant_dtor::Client` which is not `Send` |
| ... |
| LL | _ => yield, |
| | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later |
| ... |
| LL | / type_combinations!( |
| LL | | // OK |
| LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; |
| LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though |
| ... | |
| LL | | }; |
| LL | | ); |
| | |_____- in this macro invocation |
| note: required by a bound in `assert_send` |
| --> $DIR/parent-expression.rs:40:19 |
| | |
| LL | fn assert_send<T: Send>(_thing: T) {} |
| | ^^^^ required by this bound in `assert_send` |
| = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info) |
| |
| error: aborting due to 3 previous errors |
| |