| //@compile-flags: --diagnostic-width=300 | |
| // gate-test-coroutine_clone | |
| // Verifies that static coroutines cannot be cloned/copied. | |
| // This is important: the cloned coroutine would reference state of the original | |
| // coroutine, leading to semantic nonsense. | |
| #![feature(coroutines, coroutine_clone, stmt_expr_attributes)] | |
| fn main() { | |
| let generator = #[coroutine] | |
| static move || { | |
| yield; | |
| }; | |
| check_copy(&generator); | |
| //~^ ERROR Copy` is not satisfied | |
| check_clone(&generator); | |
| //~^ ERROR Clone` is not satisfied | |
| } | |
| fn check_copy<T: Copy>(_x: &T) {} | |
| fn check_clone<T: Clone>(_x: &T) {} |