File tree Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Expand file tree Collapse file tree 1 file changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -501,6 +501,33 @@ fn foo(a: &mut i32) {
501501```
502502"## ,
503503
504+ E0502 : r##"
505+ This error indicates that you are trying to borrow a variable as mutable when it
506+ has already been borrowed as immutable.
507+
508+ Example of erroneous code:
509+
510+ ```compile_fail
511+ fn bar(x: &mut i32) {}
512+ fn foo(a: &mut i32) {
513+ let ref y = a; // a is borrowed as immutable.
514+ bar(a); // error: cannot borrow `*a` as mutable because `a` is also borrowed
515+ // as immutable
516+ }
517+ ```
518+ To fix this error, ensure that you don't have any other references to the
519+ variable before trying to access it mutably:
520+ ```
521+ fn bar(x: &mut i32) {}
522+ fn foo(a: &mut i32) {
523+ bar(a);
524+ let ref y = a; // ok!
525+ }
526+ ```
527+ For more information on the rust ownership system, take a look at
528+ https://doc.rust-lang.org/stable/book/references-and-borrowing.html.
529+ "## ,
530+
504531E0504 : r##"
505532This error occurs when an attempt is made to move a borrowed variable into a
506533closure.
@@ -983,7 +1010,6 @@ fn main() {
9831010register_diagnostics ! {
9841011 E0385 , // {} in an aliasable location
9851012 E0388 , // {} in a static location
986- E0502 , // cannot borrow `..`.. as .. because .. is also borrowed as ...
9871013 E0503 , // cannot use `..` because it was mutably borrowed
9881014 E0508 , // cannot move out of type `..`, a non-copy fixed-size array
9891015 E0524 , // two closures require unique access to `..` at the same time
You can’t perform that action at this time.
0 commit comments