]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/get_first.rs
New upstream version 1.74.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / get_first.rs
CommitLineData
923072b8 1#![warn(clippy::get_first)]
fe692bf9 2#![allow(clippy::useless_vec)]
add651ee 3use std::collections::{BTreeMap, HashMap, VecDeque};
923072b8
FG
4
5struct Bar {
6 arr: [u32; 3],
7}
8
9impl Bar {
10 fn get(&self, pos: usize) -> Option<&u32> {
11 self.arr.get(pos)
12 }
13}
14
15fn main() {
16 let x = vec![2, 3, 5];
17 let _ = x.get(0); // Use x.first()
18 let _ = x.get(1);
19 let _ = x[0];
20
21 let y = [2, 3, 5];
22 let _ = y.get(0); // Use y.first()
23 let _ = y.get(1);
24 let _ = y[0];
25
26 let z = &[2, 3, 5];
27 let _ = z.get(0); // Use z.first()
28 let _ = z.get(1);
29 let _ = z[0];
30
31 let vecdeque: VecDeque<_> = x.iter().cloned().collect();
32 let hashmap: HashMap<u8, char> = HashMap::from_iter(vec![(0, 'a'), (1, 'b')]);
33 let btreemap: BTreeMap<u8, char> = BTreeMap::from_iter(vec![(0, 'a'), (1, 'b')]);
34 let _ = vecdeque.get(0); // Do not lint, because VecDeque is not slice.
35 let _ = hashmap.get(&0); // Do not lint, because HashMap is not slice.
36 let _ = btreemap.get(&0); // Do not lint, because BTreeMap is not slice.
37
38 let bar = Bar { arr: [0, 1, 2] };
39 let _ = bar.get(0); // Do not lint, because Bar is struct.
40}