Fix issue #51515 and update test
This commit is contained in:
parent
a49b75d2f3
commit
dc8ae26c1e
3 changed files with 16 additions and 4 deletions
|
|
@ -1905,8 +1905,10 @@ impl<'cx, 'gcx, 'tcx> MirBorrowckCtxt<'cx, 'gcx, 'tcx> {
|
|||
// highlighted text will always be `&<expr>` and
|
||||
// thus can transform to `&mut` by slicing off
|
||||
// first ASCII character and prepending "&mut ".
|
||||
let borrowed_expr = src[1..].to_string();
|
||||
return (assignment_rhs_span, format!("&mut {}", borrowed_expr));
|
||||
if src.starts_with('&') {
|
||||
let borrowed_expr = src[1..].to_string();
|
||||
return (assignment_rhs_span, format!("&mut {}", borrowed_expr));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,13 @@
|
|||
|
||||
fn main() {
|
||||
let foo = &16;
|
||||
//~^ HELP consider changing this to be a mutable reference
|
||||
//~| SUGGESTION &mut 16
|
||||
*foo = 32;
|
||||
//~^ ERROR cannot assign to `*foo` which is behind a `&` reference
|
||||
let bar = foo;
|
||||
//~^ HELP consider changing this to be a mutable reference
|
||||
//~| SUGGESTION &mut i32
|
||||
*bar = 64;
|
||||
//~^ ERROR cannot assign to `*bar` which is behind a `&` reference
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,18 @@
|
|||
error[E0594]: cannot assign to `*foo` which is behind a `&` reference
|
||||
--> $DIR/issue-51515.rs:15:5
|
||||
--> $DIR/issue-51515.rs:17:5
|
||||
|
|
||||
LL | let foo = &16;
|
||||
| --- help: consider changing this to be a mutable reference: `&mut 16`
|
||||
...
|
||||
LL | *foo = 32;
|
||||
| ^^^^^^^^^ `foo` is a `&` reference, so the data it refers to cannot be written
|
||||
|
||||
error[E0594]: cannot assign to `*bar` which is behind a `&` reference
|
||||
--> $DIR/issue-51515.rs:17:5
|
||||
--> $DIR/issue-51515.rs:22:5
|
||||
|
|
||||
LL | let bar = foo;
|
||||
| --- help: consider changing this to be a mutable reference: `&mut i32`
|
||||
...
|
||||
LL | *bar = 64;
|
||||
| ^^^^^^^^^ `bar` is a `&` reference, so the data it refers to cannot be written
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue