From be95ca4b17203a3aed27c17c1e93b76c9477e5bc Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 9 Aug 2017 16:38:05 -0700 Subject: [PATCH] Add a failing xcrate generator test --- src/test/run-pass/generator/auxiliary/xcrate.rs | 12 +++++++----- 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 { || { - if bar() { + if false { yield; } } } + +pub fn bar(t: T) -> Box> { + 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), + } }