| error[E0626]: borrow may still be in use when coroutine yields |
| --> $DIR/yield-while-iterating.rs:13:18 |
| | |
| LL | let _b =#[coroutine] move || { |
| | ------- within this coroutine |
| LL | for p in &x { |
| | ^^ |
| LL | yield(); |
| | ------- possible yield occurs here |
| | |
| help: add `static` to mark this coroutine as unmovable |
| | |
| LL | let _b =#[coroutine] static move || { |
| | ++++++ |
| |
| error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable |
| --> $DIR/yield-while-iterating.rs:58:20 |
| | |
| LL | let mut b = #[coroutine] || { |
| | -- mutable borrow occurs here |
| LL | for p in &mut x { |
| | - first borrow occurs due to use of `x` in coroutine |
| ... |
| LL | println!("{}", x[0]); |
| | ^ immutable borrow occurs here |
| LL | Pin::new(&mut b).resume(()); |
| | ------ mutable borrow later used here |
| |
| error: aborting due to 2 previous errors |
| |
| Some errors have detailed explanations: E0502, E0626. |
| For more information about an error, try `rustc --explain E0502`. |