//@ run-rustfix #![allow(unused_mut)] #![allow(dead_code)] #[derive(Debug)] struct A { a: i32, } impl A { fn double(&mut self) { self.a += self.a } } fn baz() { let mut v = [A { a: 4 }]; v.iter_mut().for_each(|a| a.double()); //~^ ERROR cannot borrow `*a` as mutable, as it is behind a `&` reference println!("{:?}", v); } fn bar() { let mut v = [A { a: 4 }]; v.iter_mut().rev().rev().for_each(|a| a.double()); //~^ ERROR cannot borrow `*a` as mutable, as it is behind a `&` reference println!("{:?}", v); } fn main() {}