diff options
Diffstat (limited to 'tests/ui/generator/clone-impl-async.rs')
-rw-r--r-- | tests/ui/generator/clone-impl-async.rs | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/tests/ui/generator/clone-impl-async.rs b/tests/ui/generator/clone-impl-async.rs deleted file mode 100644 index 9e9b59d36..000000000 --- a/tests/ui/generator/clone-impl-async.rs +++ /dev/null @@ -1,70 +0,0 @@ -// edition:2021 -// gate-test-generator_clone -// Verifies that feature(generator_clone) doesn't allow async blocks to be cloned/copied. - -#![feature(generators, generator_clone)] - -use std::future::ready; - -struct NonClone; - -fn main() { - let inner_non_clone = async { - let non_clone = NonClone; - let () = ready(()).await; - drop(non_clone); - }; - check_copy(&inner_non_clone); - //~^ ERROR : Copy` is not satisfied - check_clone(&inner_non_clone); - //~^ ERROR : Clone` is not satisfied - - let non_clone = NonClone; - let outer_non_clone = async move { - drop(non_clone); - }; - check_copy(&outer_non_clone); - //~^ ERROR : Copy` is not satisfied - check_clone(&outer_non_clone); - //~^ ERROR : Clone` is not satisfied - - let maybe_copy_clone = async move {}; - check_copy(&maybe_copy_clone); - //~^ ERROR : Copy` is not satisfied - check_clone(&maybe_copy_clone); - //~^ ERROR : Clone` is not satisfied - - let inner_non_clone_fn = the_inner_non_clone_fn(); - check_copy(&inner_non_clone_fn); - //~^ ERROR : Copy` is not satisfied - check_clone(&inner_non_clone_fn); - //~^ ERROR : Clone` is not satisfied - - let outer_non_clone_fn = the_outer_non_clone_fn(NonClone); - check_copy(&outer_non_clone_fn); - //~^ ERROR : Copy` is not satisfied - check_clone(&outer_non_clone_fn); - //~^ ERROR : Clone` is not satisfied - - let maybe_copy_clone_fn = the_maybe_copy_clone_fn(); - check_copy(&maybe_copy_clone_fn); - //~^ ERROR : Copy` is not satisfied - check_clone(&maybe_copy_clone_fn); - //~^ ERROR : Clone` is not satisfied -} - -async fn the_inner_non_clone_fn() { - let non_clone = NonClone; - let () = ready(()).await; - drop(non_clone); -} - -async fn the_outer_non_clone_fn(non_clone: NonClone) { - let () = ready(()).await; - drop(non_clone); -} - -async fn the_maybe_copy_clone_fn() {} - -fn check_copy<T: Copy>(_x: &T) {} -fn check_clone<T: Clone>(_x: &T) {} |