| // issue 65419 - Attempting to run an `async fn` after completion mentions coroutines when it should |
| // be talking about `async fn`s instead. Regression test added to make sure coroutines still |
| // panic when resumed after completion. |
| |
| //@ run-fail |
| //@ error-pattern:coroutine resumed after completion |
| //@ edition:2018 |
| |
| #![feature(coroutines, coroutine_trait, stmt_expr_attributes)] |
| |
| use std::{ops::Coroutine, pin::Pin}; |
| |
| fn main() { |
| let mut g = #[coroutine] |
| || { |
| yield; |
| }; |
| Pin::new(&mut g).resume(()); // Yields once. |
| Pin::new(&mut g).resume(()); // Completes here. |
| Pin::new(&mut g).resume(()); // Panics here. |
| } |