mirror of
https://github.com/rust-lang/rust.git
synced 2025-12-03 10:48:40 +00:00
Since deref patterns on boxes will be lowered differently, I'll be making a separate test file for them. This makes sure we're still testing the generic `Deref(Mut)::deref(_mut)`-based lowering.
45 lines
1.5 KiB
Plaintext
45 lines
1.5 KiB
Plaintext
error[E0502]: cannot borrow `v` as mutable because it is also borrowed as immutable
|
|
--> $DIR/fake_borrows.rs:9:16
|
|
|
|
|
LL | match v {
|
|
| - immutable borrow occurs here
|
|
LL | deref!([true]) => {}
|
|
LL | _ if { v[0] = true; false } => {}
|
|
| ^ - immutable borrow later used here
|
|
| |
|
|
| mutable borrow occurs here
|
|
|
|
error[E0502]: cannot borrow `v` as mutable because it is also borrowed as immutable
|
|
--> $DIR/fake_borrows.rs:16:16
|
|
|
|
|
LL | match v {
|
|
| - immutable borrow occurs here
|
|
LL | [true] => {}
|
|
LL | _ if { v[0] = true; false } => {}
|
|
| ^ - immutable borrow later used here
|
|
| |
|
|
| mutable borrow occurs here
|
|
|
|
error[E0510]: cannot assign `*b` in match guard
|
|
--> $DIR/fake_borrows.rs:26:16
|
|
|
|
|
LL | match b {
|
|
| - value is immutable in match guard
|
|
LL | deref!(true) => {}
|
|
LL | _ if { *b = true; false } => {}
|
|
| ^^^^^^^^^ cannot assign
|
|
|
|
error[E0510]: cannot assign `*b` in match guard
|
|
--> $DIR/fake_borrows.rs:33:16
|
|
|
|
|
LL | match b {
|
|
| - value is immutable in match guard
|
|
LL | true => {}
|
|
LL | _ if { *b = true; false } => {}
|
|
| ^^^^^^^^^ cannot assign
|
|
|
|
error: aborting due to 4 previous errors
|
|
|
|
Some errors have detailed explanations: E0502, E0510.
|
|
For more information about an error, try `rustc --explain E0502`.
|