]>
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 { | |
781aab86 FG |
10 | //~^ ERROR: you seem to want to iterate on a map's values |
11 | //~| NOTE: `-D clippy::for-kv-map` implied by `-D warnings` | |
f20569fa XL |
12 | let _v = v; |
13 | } | |
14 | ||
15 | let m: Rc<HashMap<u64, u64>> = Rc::new(HashMap::new()); | |
16 | for (_, v) in &*m { | |
781aab86 | 17 | //~^ ERROR: you seem to want to iterate on a map's values |
f20569fa XL |
18 | let _v = v; |
19 | // Here the `*` is not actually necessary, but the test tests that we don't | |
20 | // suggest | |
21 | // `in *m.values()` as we used to | |
22 | } | |
23 | ||
24 | let mut m: HashMap<u64, u64> = HashMap::new(); | |
25 | for (_, v) in &mut m { | |
781aab86 | 26 | //~^ ERROR: you seem to want to iterate on a map's values |
f20569fa XL |
27 | let _v = v; |
28 | } | |
29 | ||
30 | let m: &mut HashMap<u64, u64> = &mut HashMap::new(); | |
31 | for (_, v) in &mut *m { | |
781aab86 | 32 | //~^ ERROR: you seem to want to iterate on a map's values |
f20569fa XL |
33 | let _v = v; |
34 | } | |
35 | ||
36 | let m: HashMap<u64, u64> = HashMap::new(); | |
37 | let rm = &m; | |
38 | for (k, _value) in rm { | |
781aab86 | 39 | //~^ ERROR: you seem to want to iterate on a map's keys |
f20569fa XL |
40 | let _k = k; |
41 | } | |
42 | ||
43 | // The following should not produce warnings. | |
44 | ||
45 | let m: HashMap<u64, u64> = HashMap::new(); | |
46 | // No error, _value is actually used | |
47 | for (k, _value) in &m { | |
48 | let _ = _value; | |
49 | let _k = k; | |
50 | } | |
51 | ||
52 | let m: HashMap<u64, String> = Default::default(); | |
53 | for (_, v) in m { | |
54 | let _v = v; | |
55 | } | |
56 | } |