| //@ run-rustfix | |
| // https://github.com/rust-lang/rust/issues/82081 & https://github.com/rust-lang/rust/issues/49839 | |
| use std::collections::HashMap; | |
| struct Test { | |
| v: u32, | |
| } | |
| fn a() { | |
| let mut map = HashMap::new(); | |
| map.insert("a", Test { v: 0 }); | |
| for (_k, 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 | |
| } | |
| } | |
| fn b() { | |
| let mut map = HashMap::new(); | |
| map.insert("a", Test { v: 0 }); | |
| let x = map.iter_mut(); | |
| //~^ HELP use mutable method | |
| for (_k, v) in x { | |
| //~^ NOTE this iterator yields `&` references | |
| v.v += 1; | |
| //~^ ERROR cannot assign to `v.v` | |
| //~| NOTE `v` is a `&` reference | |
| } | |
| } | |
| fn main() { | |
| a(); | |
| b(); | |
| } |