2 // compile-flags: -Zdrop-tracking
3 #![feature(generators, negative_impls)]
5 macro_rules! type_combinations {
7 $( $name:ident => { $( $tt:tt )* } );*
13 impl !Sync for Client {}
18 impl !Send for Client {}
22 // This is the same bug as issue 57017, but using yield instead of await
24 let g = move || match drop(&$name::unsync::Client::default()) {
30 // This tests that `Client` is properly considered to be dropped after moving it into the
33 let g = move || match drop($name::unsend::Client::default()) {
41 fn assert_send<T: Send>(_thing: T) {}
45 copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
46 derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } };
50 impl Drop for Client {