diff options
Diffstat (limited to 'src/test/ui/generator/xcrate.rs')
-rw-r--r-- | src/test/ui/generator/xcrate.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/generator/xcrate.rs b/src/test/ui/generator/xcrate.rs new file mode 100644 index 000000000..40986bbeb --- /dev/null +++ b/src/test/ui/generator/xcrate.rs @@ -0,0 +1,30 @@ +// run-pass + +// aux-build:xcrate.rs + +#![feature(generators, generator_trait)] + +extern crate xcrate; + +use std::ops::{GeneratorState, Generator}; +use std::pin::Pin; + +fn main() { + let mut foo = xcrate::foo(); + + match Pin::new(&mut foo).resume(()) { + GeneratorState::Complete(()) => {} + s => panic!("bad state: {:?}", s), + } + + let mut foo = xcrate::bar(3); + + match Pin::new(&mut foo).resume(()) { + GeneratorState::Yielded(3) => {} + s => panic!("bad state: {:?}", s), + } + match Pin::new(&mut foo).resume(()) { + GeneratorState::Complete(()) => {} + s => panic!("bad state: {:?}", s), + } +} |