//@run-rustfix | |
#![allow(unused)] | |
struct S; | |
impl S { | |
fn foo(&mut self) { | |
let x = |this: &Self, v: i32| { | |
this.bar(); | |
this.hel(); | |
}; | |
self.qux(); //~ ERROR cannot borrow `*self` as mutable because it is also borrowed as immutable | |
x(self, 1); | |
x(self, 3); | |
} | |
fn bar(&self) {} | |
fn hel(&self) {} | |
fn qux(&mut self) {} | |
fn hello(&mut self) { | |
let y = |this: &Self| { | |
this.bar(); | |
}; | |
self.qux(); //~ ERROR cannot borrow `*self` as mutable because it is also borrowed as immutable | |
y(self); | |
} | |
} | |
fn main() {} |