#![feature(coroutines, stmt_expr_attributes)] fn foo(x: &i32) { // In this case, a reference to `b` escapes the coroutine, but not // because of a yield. We see that there is no yield in the scope of // `b` and give the more generic error message. let mut a = &3; let mut b = #[coroutine] move || { yield (); let b = 5; a = &b; //~^ ERROR borrowed data escapes outside of coroutine }; } fn main() {}