bc4f9b848d
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.
32 lines
1.2 KiB
Plaintext
32 lines
1.2 KiB
Plaintext
error[E0501]: cannot borrow `*a` as mutable because previous closure requires unique access
|
|
--> $DIR/E0501.rs:28:23
|
|
|
|
|
LL | let bar = || {
|
|
| -- closure construction occurs here
|
|
LL | inside_closure(a)
|
|
| - first borrow occurs due to use of `a` in closure
|
|
LL | };
|
|
LL | outside_closure_1(a); //[ast]~ ERROR cannot borrow `*a` as mutable because previous closure requires unique access
|
|
| ^ borrow occurs here
|
|
...
|
|
LL | drop(bar);
|
|
| --- first borrow later used here
|
|
|
|
error[E0501]: cannot borrow `*a` as immutable because previous closure requires unique access
|
|
--> $DIR/E0501.rs:31:23
|
|
|
|
|
LL | let bar = || {
|
|
| -- closure construction occurs here
|
|
LL | inside_closure(a)
|
|
| - first borrow occurs due to use of `a` in closure
|
|
...
|
|
LL | outside_closure_2(a); //[ast]~ ERROR cannot borrow `*a` as immutable because previous closure requires unique access
|
|
| ^ borrow occurs here
|
|
...
|
|
LL | drop(bar);
|
|
| --- first borrow later used here
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0501`.
|