]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | #![warn(clippy::for_kv_map)] |
2 | #![allow(clippy::used_underscore_binding)] | |
3 | ||
4 | use std::collections::*; | |
5 | use std::rc::Rc; | |
6 | ||
7 | fn main() { | |
8 | let m: HashMap<u64, u64> = HashMap::new(); | |
9 | for (_, v) in &m { | |
10 | let _v = v; | |
11 | } | |
12 | ||
13 | let m: Rc<HashMap<u64, u64>> = Rc::new(HashMap::new()); | |
14 | for (_, v) in &*m { | |
15 | let _v = v; | |
16 | // Here the `*` is not actually necessary, but the test tests that we don't | |
17 | // suggest | |
18 | // `in *m.values()` as we used to | |
19 | } | |
20 | ||
21 | let mut m: HashMap<u64, u64> = HashMap::new(); | |
22 | for (_, v) in &mut m { | |
23 | let _v = v; | |
24 | } | |
25 | ||
26 | let m: &mut HashMap<u64, u64> = &mut HashMap::new(); | |
27 | for (_, v) in &mut *m { | |
28 | let _v = v; | |
29 | } | |
30 | ||
31 | let m: HashMap<u64, u64> = HashMap::new(); | |
32 | let rm = &m; | |
33 | for (k, _value) in rm { | |
34 | let _k = k; | |
35 | } | |
36 | ||
37 | // The following should not produce warnings. | |
38 | ||
39 | let m: HashMap<u64, u64> = HashMap::new(); | |
40 | // No error, _value is actually used | |
41 | for (k, _value) in &m { | |
42 | let _ = _value; | |
43 | let _k = k; | |
44 | } | |
45 | ||
46 | let m: HashMap<u64, String> = Default::default(); | |
47 | for (_, v) in m { | |
48 | let _v = v; | |
49 | } | |
50 | } |