summaryrefslogtreecommitdiffstats
path: root/tests/ui/generator/issue-57017.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/generator/issue-57017.rs')
-rw-r--r--tests/ui/generator/issue-57017.rs55
1 files changed, 0 insertions, 55 deletions
diff --git a/tests/ui/generator/issue-57017.rs b/tests/ui/generator/issue-57017.rs
deleted file mode 100644
index bb2d6679b..000000000
--- a/tests/ui/generator/issue-57017.rs
+++ /dev/null
@@ -1,55 +0,0 @@
-// build-pass
-#![feature(generators, negative_impls)]
-#![allow(dropping_references, dropping_copy_types)]
-
-macro_rules! type_combinations {
- (
- $( $name:ident => { $( $tt:tt )* } );*
- ) => { $(
- mod $name {
- pub mod unsync {
- $( $tt )*
-
- impl !Sync for Client {}
- }
- pub mod unsend {
- $( $tt )*
-
- impl !Send for Client {}
- }
- }
-
- // This is the same bug as issue 57017, but using yield instead of await
- {
- let g = move || match drop(&$name::unsync::Client::default()) {
- _status => yield,
- };
- assert_send(g);
- }
-
- // This tests that `Client` is properly considered to be dropped after moving it into the
- // function.
- {
- let g = move || match drop($name::unsend::Client::default()) {
- _status => yield,
- };
- assert_send(g);
- }
- )* }
-}
-
-fn assert_send<T: Send>(_thing: T) {}
-
-fn main() {
- type_combinations!(
- copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- derived_drop => { #[derive(Default)] pub struct Client { pub nickname: String } };
- significant_drop => {
- #[derive(Default)]
- pub struct Client;
- impl Drop for Client {
- fn drop(&mut self) {}
- }
- }
- );
-}