29 lines
630 B
Rust
29 lines
630 B
Rust
|
//@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() {}
|