]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/needless_collect_indirect.rs
New upstream version 1.54.0+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / needless_collect_indirect.rs
CommitLineData
17df50a5 1use std::collections::{BinaryHeap, HashMap, HashSet, LinkedList, VecDeque};
f20569fa
XL
2
3fn main() {
4 let sample = [1; 5];
5 let indirect_iter = sample.iter().collect::<Vec<_>>();
6 indirect_iter.into_iter().map(|x| (x, x + 1)).collect::<HashMap<_, _>>();
7 let indirect_len = sample.iter().collect::<VecDeque<_>>();
8 indirect_len.len();
9 let indirect_empty = sample.iter().collect::<VecDeque<_>>();
10 indirect_empty.is_empty();
11 let indirect_contains = sample.iter().collect::<VecDeque<_>>();
12 indirect_contains.contains(&&5);
13 let indirect_negative = sample.iter().collect::<Vec<_>>();
14 indirect_negative.len();
15 indirect_negative
16 .into_iter()
17 .map(|x| (*x, *x + 1))
18 .collect::<HashMap<_, _>>();
19
20 // #6202
21 let a = "a".to_string();
22 let sample = vec![a.clone(), "b".to_string(), "c".to_string()];
23 let non_copy_contains = sample.into_iter().collect::<Vec<_>>();
24 non_copy_contains.contains(&a);
25
26 // Fix #5991
27 let vec_a = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
28 let vec_b = vec_a.iter().collect::<Vec<_>>();
29 if vec_b.len() > 3 {}
30 let other_vec = vec![1, 3, 12, 4, 16, 2];
31 let we_got_the_same_numbers = other_vec.iter().filter(|item| vec_b.contains(item)).collect::<Vec<_>>();
32
33 // Fix #6297
34 let sample = [1; 5];
35 let multiple_indirect = sample.iter().collect::<Vec<_>>();
36 let sample2 = vec![2, 3];
37 if multiple_indirect.is_empty() {
38 // do something
39 } else {
40 let found = sample2
41 .iter()
42 .filter(|i| multiple_indirect.iter().any(|s| **s % **i == 0))
43 .collect::<Vec<_>>();
44 }
45}
17df50a5
XL
46
47mod issue7110 {
48 // #7110 - lint for type annotation cases
49 use super::*;
50
51 fn lint_vec(string: &str) -> usize {
52 let buffer: Vec<&str> = string.split('/').collect();
53 buffer.len()
54 }
55 fn lint_vec_deque() -> usize {
56 let sample = [1; 5];
57 let indirect_len: VecDeque<_> = sample.iter().collect();
58 indirect_len.len()
59 }
60 fn lint_linked_list() -> usize {
61 let sample = [1; 5];
62 let indirect_len: LinkedList<_> = sample.iter().collect();
63 indirect_len.len()
64 }
65 fn lint_binary_heap() -> usize {
66 let sample = [1; 5];
67 let indirect_len: BinaryHeap<_> = sample.iter().collect();
68 indirect_len.len()
69 }
70 fn dont_lint(string: &str) -> usize {
71 let buffer: Vec<&str> = string.split('/').collect();
72 for buff in &buffer {
73 println!("{}", buff);
74 }
75 buffer.len()
76 }
77}
78
79fn allow_test() {
80 #[allow(clippy::needless_collect)]
81 let v = [1].iter().collect::<Vec<_>>();
82 v.into_iter().collect::<HashSet<_>>();
83}