error: generator cannot be sent between threads safely --> $DIR/issue-57017.rs:32:25 | LL | assert_send(g); | ^ generator is not `Send` ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation | = help: the trait `Sync` is not implemented for `copy::unsync::Client` = note: consider using `std::sync::Arc`; for more information visit note: generator is not `Send` as this value is used across a yield --> $DIR/issue-57017.rs:30:28 | LL | let g = move || match drop(&$name::unsync::Client::default()) { | --------------------------------- has type `©::unsync::Client` which is not `Send` LL | _status => yield, | ^^^^^ yield occurs here, with `&$name::unsync::Client::default()` maybe used later LL | }; | - `&$name::unsync::Client::default()` is later dropped here ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation note: required by a bound in `assert_send` --> $DIR/issue-57017.rs:52:19 | LL | fn assert_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: generator cannot be sent between threads safely --> $DIR/issue-57017.rs:44:25 | LL | assert_send(g); | ^ generator is not `Send` ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation | = help: within `[generator@$DIR/issue-57017.rs:41:21: 41:28]`, the trait `Send` is not implemented for `copy::unsend::Client` = note: consider using `std::sync::Arc`; for more information visit note: generator is not `Send` as this value is used across a yield --> $DIR/issue-57017.rs:42:28 | LL | let g = move || match drop($name::unsend::Client::default()) { | -------------------------------- has type `copy::unsend::Client` which is not `Send` LL | _status => yield, | ^^^^^ yield occurs here, with `$name::unsend::Client::default()` maybe used later LL | }; | - `$name::unsend::Client::default()` is later dropped here ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation note: required by a bound in `assert_send` --> $DIR/issue-57017.rs:52:19 | LL | fn assert_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: generator cannot be sent between threads safely --> $DIR/issue-57017.rs:32:25 | LL | assert_send(g); | ^ generator is not `Send` ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation | = help: the trait `Sync` is not implemented for `derived_drop::unsync::Client` = note: consider using `std::sync::Arc`; for more information visit note: generator is not `Send` as this value is used across a yield --> $DIR/issue-57017.rs:30:28 | LL | let g = move || match drop(&$name::unsync::Client::default()) { | --------------------------------- has type `&derived_drop::unsync::Client` which is not `Send` LL | _status => yield, | ^^^^^ yield occurs here, with `&$name::unsync::Client::default()` maybe used later LL | }; | - `&$name::unsync::Client::default()` is later dropped here ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation note: required by a bound in `assert_send` --> $DIR/issue-57017.rs:52:19 | LL | fn assert_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: generator cannot be sent between threads safely --> $DIR/issue-57017.rs:44:25 | LL | assert_send(g); | ^ generator is not `Send` ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation | = help: within `[generator@$DIR/issue-57017.rs:41:21: 41:28]`, the trait `Send` is not implemented for `derived_drop::unsend::Client` = note: consider using `std::sync::Arc`; for more information visit note: generator is not `Send` as this value is used across a yield --> $DIR/issue-57017.rs:42:28 | LL | let g = move || match drop($name::unsend::Client::default()) { | -------------------------------- has type `derived_drop::unsend::Client` which is not `Send` LL | _status => yield, | ^^^^^ yield occurs here, with `$name::unsend::Client::default()` maybe used later LL | }; | - `$name::unsend::Client::default()` is later dropped here ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation note: required by a bound in `assert_send` --> $DIR/issue-57017.rs:52:19 | LL | fn assert_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: generator cannot be sent between threads safely --> $DIR/issue-57017.rs:32:25 | LL | assert_send(g); | ^ generator is not `Send` ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation | = help: the trait `Sync` is not implemented for `significant_drop::unsync::Client` = note: consider using `std::sync::Arc`; for more information visit note: generator is not `Send` as this value is used across a yield --> $DIR/issue-57017.rs:30:28 | LL | let g = move || match drop(&$name::unsync::Client::default()) { | --------------------------------- has type `&significant_drop::unsync::Client` which is not `Send` LL | _status => yield, | ^^^^^ yield occurs here, with `&$name::unsync::Client::default()` maybe used later LL | }; | - `&$name::unsync::Client::default()` is later dropped here ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation note: required by a bound in `assert_send` --> $DIR/issue-57017.rs:52:19 | LL | fn assert_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: generator cannot be sent between threads safely --> $DIR/issue-57017.rs:44:25 | LL | assert_send(g); | ^ generator is not `Send` ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation | = help: within `[generator@$DIR/issue-57017.rs:41:21: 41:28]`, the trait `Send` is not implemented for `significant_drop::unsend::Client` = note: consider using `std::sync::Arc`; for more information visit note: generator is not `Send` as this value is used across a yield --> $DIR/issue-57017.rs:42:28 | LL | let g = move || match drop($name::unsend::Client::default()) { | -------------------------------- has type `significant_drop::unsend::Client` which is not `Send` LL | _status => yield, | ^^^^^ yield occurs here, with `$name::unsend::Client::default()` maybe used later LL | }; | - `$name::unsend::Client::default()` is later dropped here ... LL | / type_combinations!( LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; }; LL | | derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } }; LL | | significant_drop => { ... | LL | | } LL | | ); | |_____- in this macro invocation note: required by a bound in `assert_send` --> $DIR/issue-57017.rs:52:19 | LL | fn assert_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 6 previous errors