diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2017-08-09 16:38:05 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2017-08-09 16:38:05 -0700 |
| commit | be95ca4b17203a3aed27c17c1e93b76c9477e5bc (patch) | |
| tree | 55063debea7cf4d217e4f7d5cb052aca756401eb /src | |
| parent | e181060a59c5975bd1a011524d9541a3cdacdfbb (diff) | |
| download | rust-be95ca4b17203a3aed27c17c1e93b76c9477e5bc.tar.gz rust-be95ca4b17203a3aed27c17c1e93b76c9477e5bc.zip | |
Add a failing xcrate generator test
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/run-pass/generator/auxiliary/xcrate.rs | 12 | ||||
| -rw-r--r-- | src/test/run-pass/generator/xcrate.rs | 11 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/test/run-pass/generator/auxiliary/xcrate.rs b/src/test/run-pass/generator/auxiliary/xcrate.rs index 519c34cd0ed..f6878e64fbf 100644 --- a/src/test/run-pass/generator/auxiliary/xcrate.rs +++ b/src/test/run-pass/generator/auxiliary/xcrate.rs @@ -12,14 +12,16 @@ use std::ops::Generator; -fn bar() -> bool { - false -} - pub fn foo() -> impl Generator<Yield = (), Return = ()> { || { - if bar() { + if false { yield; } } } + +pub fn bar<T: 'static>(t: T) -> Box<Generator<Yield = T, Return = ()>> { + Box::new(|| { + yield t; + }) +} diff --git a/src/test/run-pass/generator/xcrate.rs b/src/test/run-pass/generator/xcrate.rs index 5d6cdee1a24..7db56793829 100644 --- a/src/test/run-pass/generator/xcrate.rs +++ b/src/test/run-pass/generator/xcrate.rs @@ -23,4 +23,15 @@ fn main() { GeneratorState::Complete(()) => {} s => panic!("bad state: {:?}", s), } + + let mut foo = xcrate::bar(3); + + match foo.resume() { + GeneratorState::Yielded(4) => {} + s => panic!("bad state: {:?}", s), + } + match foo.resume() { + GeneratorState::Complete(()) => {} + s => panic!("bad state: {:?}", s), + } } |
