diff options
Diffstat (limited to 'src/test/ui/generator/generator-resume-after-panic.rs')
-rw-r--r-- | src/test/ui/generator/generator-resume-after-panic.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/generator/generator-resume-after-panic.rs b/src/test/ui/generator/generator-resume-after-panic.rs new file mode 100644 index 000000000..f2e67f1f7 --- /dev/null +++ b/src/test/ui/generator/generator-resume-after-panic.rs @@ -0,0 +1,25 @@ +// run-fail +// needs-unwind +// error-pattern:generator resumed after panicking +// ignore-emscripten no processes + +// Test that we get the correct message for resuming a panicked generator. + +#![feature(generators, generator_trait)] + +use std::{ + ops::Generator, + pin::Pin, + panic, +}; + +fn main() { + let mut g = || { + panic!(); + yield; + }; + panic::catch_unwind(panic::AssertUnwindSafe(|| { + let x = Pin::new(&mut g).resume(()); + })); + Pin::new(&mut g).resume(()); +} |