]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/for_kv_map.rs
New upstream version 1.52.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / for_kv_map.rs
CommitLineData
f20569fa
XL
1#![warn(clippy::for_kv_map)]
2#![allow(clippy::used_underscore_binding)]
3
4use std::collections::*;
5use std::rc::Rc;
6
7fn 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}