| //@ 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(); |
| } |