2018-10-04 18:49:38 +00:00
|
|
|
#![feature(generators)]
|
2017-07-14 23:11:21 +00:00
|
|
|
|
2017-07-15 10:52:49 +00:00
|
|
|
fn foo(x: &i32) {
|
|
|
|
// In this case, a reference to `b` escapes the generator, 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 = move || {
|
|
|
|
yield();
|
|
|
|
let b = 5;
|
2017-11-20 12:13:27 +00:00
|
|
|
a = &b;
|
2019-04-22 07:40:08 +00:00
|
|
|
//~^ ERROR borrowed data escapes outside of generator
|
2017-12-14 01:27:23 +00:00
|
|
|
};
|
2017-07-14 23:11:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() { }
|