Give a special message when the later use is from a call. Use the span of the callee instead of the whole expression. For conflicting borrow messages say that the later use is of the first borrow.
25 lines
881 B
Plaintext
25 lines
881 B
Plaintext
error[E0502]: cannot borrow `x` as immutable because it is also borrowed as mutable
|
|
--> $DIR/method-self-arg-2.rs:25:14
|
|
|
|
|
LL | let y = &mut x;
|
|
| ------ mutable borrow occurs here
|
|
LL | Foo::bar(&x); //~ERROR cannot borrow `x`
|
|
| ^^ immutable borrow occurs here
|
|
LL | y.use_mut();
|
|
| - mutable borrow later used here
|
|
|
|
error[E0499]: cannot borrow `x` as mutable more than once at a time
|
|
--> $DIR/method-self-arg-2.rs:30:14
|
|
|
|
|
LL | let y = &mut x;
|
|
| ------ first mutable borrow occurs here
|
|
LL | Foo::baz(&mut x); //~ERROR cannot borrow `x`
|
|
| ^^^^^^ second mutable borrow occurs here
|
|
LL | y.use_mut();
|
|
| - first borrow later used here
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
Some errors occurred: E0499, E0502.
|
|
For more information about an error, try `rustc --explain E0499`.
|