Skip to content

Commit 77d5f39

Browse files
committed
Also test &mut self suggestion
1 parent 73a979a commit 77d5f39

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

src/test/ui/suggestions/suggest-ref-mut.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,17 @@
1010

1111
#![feature(nll)]
1212

13+
struct X(usize);
14+
15+
impl X {
16+
fn zap(&self) {
17+
//~^ HELP
18+
//~| SUGGESTION &mut self
19+
self.0 = 32;
20+
//~^ ERROR
21+
}
22+
}
23+
1324
fn main() {
1425
let ref foo = 16;
1526
//~^ HELP
Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1+
error[E0594]: cannot assign to `self.0` which is behind a `&` reference
2+
--> $DIR/suggest-ref-mut.rs:19:9
3+
|
4+
LL | fn zap(&self) {
5+
| ----- help: consider changing this to be a mutable reference: `&mut self`
6+
...
7+
LL | self.0 = 32;
8+
| ^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be written
9+
110
error[E0594]: cannot assign to `*foo` which is behind a `&` reference
2-
--> $DIR/suggest-ref-mut.rs:17:5
11+
--> $DIR/suggest-ref-mut.rs:28:5
312
|
413
LL | let ref foo = 16;
514
| ------- help: consider changing this to be a mutable reference: `ref mut foo`
@@ -8,7 +17,7 @@ LL | *foo = 32;
817
| ^^^^^^^^^ `foo` is a `&` reference, so the data it refers to cannot be written
918

1019
error[E0594]: cannot assign to `*bar` which is behind a `&` reference
11-
--> $DIR/suggest-ref-mut.rs:22:9
20+
--> $DIR/suggest-ref-mut.rs:33:9
1221
|
1322
LL | if let Some(ref bar) = Some(16) {
1423
| ------- help: consider changing this to be a mutable reference: `ref mut bar`
@@ -17,13 +26,13 @@ LL | *bar = 32;
1726
| ^^^^^^^^^ `bar` is a `&` reference, so the data it refers to cannot be written
1827

1928
error[E0594]: cannot assign to `*quo` which is behind a `&` reference
20-
--> $DIR/suggest-ref-mut.rs:26:22
29+
--> $DIR/suggest-ref-mut.rs:37:22
2130
|
2231
LL | ref quo => { *quo = 32; },
2332
| ------- ^^^^^^^^^ `quo` is a `&` reference, so the data it refers to cannot be written
2433
| |
2534
| help: consider changing this to be a mutable reference: `ref mut quo`
2635

27-
error: aborting due to 3 previous errors
36+
error: aborting due to 4 previous errors
2837

2938
For more information about this error, try `rustc --explain E0594`.

0 commit comments

Comments
 (0)