diagnostics: add regression test for #82081
This commit is contained in:
parent
a063b3a4b6
commit
757ab6b55c
3 changed files with 57 additions and 0 deletions
|
@ -0,0 +1,21 @@
|
|||
// run-rustfix
|
||||
// https://github.com/rust-lang/rust/issues/82081
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
struct Test {
|
||||
v: u32,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut map = HashMap::new();
|
||||
map.insert("a", Test { v: 0 });
|
||||
|
||||
for (_k, mut v) in map.iter_mut() {
|
||||
//~^ HELP use mutable method
|
||||
//~| NOTE this iterator yields `&` references
|
||||
v.v += 1;
|
||||
//~^ ERROR cannot assign to `v.v`
|
||||
//~| NOTE `v` is a `&` reference
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
// run-rustfix
|
||||
// https://github.com/rust-lang/rust/issues/82081
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
struct Test {
|
||||
v: u32,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut map = HashMap::new();
|
||||
map.insert("a", Test { v: 0 });
|
||||
|
||||
for (_k, mut v) in map.iter() {
|
||||
//~^ HELP use mutable method
|
||||
//~| NOTE this iterator yields `&` references
|
||||
v.v += 1;
|
||||
//~^ ERROR cannot assign to `v.v`
|
||||
//~| NOTE `v` is a `&` reference
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
error[E0594]: cannot assign to `v.v`, which is behind a `&` reference
|
||||
--> $DIR/suggest-mut-method-for-loop-hashmap.rs:17:9
|
||||
|
|
||||
LL | for (_k, mut v) in map.iter() {
|
||||
| ----------
|
||||
| | |
|
||||
| | help: use mutable method: `iter_mut()`
|
||||
| this iterator yields `&` references
|
||||
...
|
||||
LL | v.v += 1;
|
||||
| ^^^^^^^^ `v` is a `&` reference, so the data it refers to cannot be written
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0594`.
|
Loading…
Add table
Reference in a new issue