783 B
783 B
This error indicates that you are trying to borrow a variable as mutable when it has already been borrowed as immutable.
Erroneous code example:
fn bar(x: &mut i32) {}
fn foo(a: &mut i32) {
let ref y = a; // a is borrowed as immutable.
bar(a); // error: cannot borrow `*a` as mutable because `a` is also borrowed
// as immutable
println!("{}", y);
}
To fix this error, ensure that you don't have any other references to the variable before trying to access it mutably:
fn bar(x: &mut i32) {}
fn foo(a: &mut i32) {
bar(a);
let ref y = a; // ok!
println!("{}", y);
}
For more information on the rust ownership system, take a look at https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html.