| error[E0499]: cannot borrow `chars` as mutable more than once at a time |
| --> $DIR/issue-102972.rs:6:9 |
| | |
| LL | for _c in chars.by_ref() { |
| | -------------- |
| | | |
| | first mutable borrow occurs here |
| | first borrow later used here |
| LL | chars.next(); |
| | ^^^^^ second mutable borrow occurs here |
| | |
| = note: a for loop advances the iterator for you, the result is stored in `_c` |
| help: if you want to call `next` on a iterator within the loop, consider using `while let` |
| | |
| LL ~ let iter = chars.by_ref(); |
| LL ~ while let Some(_c) = iter.next() { |
| LL ~ iter.next(); |
| | |
| |
| error[E0382]: borrow of moved value: `iter` |
| --> $DIR/issue-102972.rs:14:9 |
| | |
| LL | let mut iter = v.iter(); |
| | -------- move occurs because `iter` has type `std::slice::Iter<'_, i32>`, which does not implement the `Copy` trait |
| LL | for _i in iter { |
| | ---- `iter` moved due to this implicit call to `.into_iter()` |
| LL | iter.next(); |
| | ^^^^ value borrowed here after move |
| | |
| = note: a for loop advances the iterator for you, the result is stored in `_i` |
| note: `into_iter` takes ownership of the receiver `self`, which moves `iter` |
| --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL |
| help: if you want to call `next` on a iterator within the loop, consider using `while let` |
| | |
| LL | while let Some(_i) = iter.next() { |
| | ~~~~~~~~~~~~~~~ ~~~ +++++++ |
| |
| error[E0499]: cannot borrow `i` as mutable more than once at a time |
| --> $DIR/issue-102972.rs:22:9 |
| | |
| LL | for () in i.by_ref() { |
| | ---------- |
| | | |
| | first mutable borrow occurs here |
| | first borrow later used here |
| LL | i.next(); |
| | ^ second mutable borrow occurs here |
| | |
| = note: a for loop advances the iterator for you, the result is stored in its pattern |
| help: if you want to call `next` on a iterator within the loop, consider using `while let` |
| | |
| LL ~ let iter = i.by_ref(); |
| LL ~ while let Some(()) = iter.next() { |
| LL ~ iter.next(); |
| | |
| |
| error[E0382]: borrow of moved value: `iter` |
| --> $DIR/issue-102972.rs:30:9 |
| | |
| LL | let mut iter = v.iter(); |
| | -------- move occurs because `iter` has type `std::slice::Iter<'_, ()>`, which does not implement the `Copy` trait |
| LL | for () in iter { |
| | ---- `iter` moved due to this implicit call to `.into_iter()` |
| LL | iter.next(); |
| | ^^^^ value borrowed here after move |
| | |
| = note: a for loop advances the iterator for you, the result is stored in its pattern |
| note: `into_iter` takes ownership of the receiver `self`, which moves `iter` |
| --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL |
| help: if you want to call `next` on a iterator within the loop, consider using `while let` |
| | |
| LL | while let Some(()) = iter.next() { |
| | ~~~~~~~~~~~~~~~ ~~~ +++++++ |
| |
| error: aborting due to 4 previous errors |
| |
| Some errors have detailed explanations: E0382, E0499. |
| For more information about an error, try `rustc --explain E0382`. |