// run-rustfix fn test1() { let mut chars = "Hello".chars(); let iter = chars.by_ref(); while let Some(_c) = iter.next() { iter.next(); //~ ERROR cannot borrow `chars` as mutable more than once at a time } } fn test2() { let v = vec![1, 2, 3]; let mut iter = v.iter(); while let Some(_i) = iter.next() { iter.next(); //~ ERROR borrow of moved value: `iter` } } fn test3() { let v = vec![(), (), ()]; let mut i = v.iter(); let iter = i.by_ref(); while let Some(()) = iter.next() { iter.next(); //~ ERROR cannot borrow `i` } } fn test4() { let v = vec![(), (), ()]; let mut iter = v.iter(); while let Some(()) = iter.next() { iter.next(); //~ ERROR borrow of moved value: `iter` } } fn main() { test1(); test2(); test3(); test4(); }