aa701154f0
This commit extends existing special-casing of closures to highlight the use of variables within generators that are causing the generator to borrow them.
26 lines
878 B
Plaintext
26 lines
878 B
Plaintext
error[E0626]: borrow may still be in use when generator yields
|
|
--> $DIR/yield-while-iterating.rs:22:18
|
|
|
|
|
LL | for p in &x { //~ ERROR
|
|
| ^^
|
|
LL | yield();
|
|
| ------- possible yield occurs here
|
|
|
|
error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable
|
|
--> $DIR/yield-while-iterating.rs:67:20
|
|
|
|
|
LL | let mut b = || {
|
|
| -- mutable borrow occurs here
|
|
LL | for p in &mut x {
|
|
| - first borrow occurs due to use of `x` in generator
|
|
...
|
|
LL | println!("{}", x[0]); //~ ERROR
|
|
| ^ immutable borrow occurs here
|
|
LL | b.resume();
|
|
| - mutable borrow later used here
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
Some errors occurred: E0502, E0626.
|
|
For more information about an error, try `rustc --explain E0502`.
|