1 use std::collections::{BinaryHeap, HashMap, HashSet, LinkedList, VecDeque};
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<_>>();
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();
17 .map(|x| (*x, *x + 1))
18 .collect::<HashMap<_, _>>();
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);
27 let vec_a = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
28 let vec_b = vec_a.iter().collect::<Vec<_>>();
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<_>>();
35 let multiple_indirect = sample.iter().collect::<Vec<_>>();
36 let sample2 = vec![2, 3];
37 if multiple_indirect.is_empty() {
42 .filter(|i| multiple_indirect.iter().any(|s| **s % **i == 0))
48 // #7110 - lint for type annotation cases
51 fn lint_vec(string: &str) -> usize {
52 let buffer: Vec<&str> = string.split('/').collect();
55 fn lint_vec_deque() -> usize {
57 let indirect_len: VecDeque<_> = sample.iter().collect();
60 fn lint_linked_list() -> usize {
62 let indirect_len: LinkedList<_> = sample.iter().collect();
65 fn lint_binary_heap() -> usize {
67 let indirect_len: BinaryHeap<_> = sample.iter().collect();
70 fn dont_lint(string: &str) -> usize {
71 let buffer: Vec<&str> = string.split('/').collect();
82 fn direct_mapping_with_used_mutable_reference() -> Vec<()> {
83 let test_vec: Vec<()> = vec![];
84 let mut vec_2: Vec<()> = vec![];
85 let mut_ref = &mut vec_2;
86 let collected_vec: Vec<_> = test_vec.into_iter().map(|_| mut_ref.push(())).collect();
87 collected_vec.into_iter().map(|_| mut_ref.push(())).collect()
90 fn indirectly_mapping_with_used_mutable_reference() -> Vec<()> {
91 let test_vec: Vec<()> = vec![];
92 let mut vec_2: Vec<()> = vec![];
93 let mut_ref = &mut vec_2;
94 let collected_vec: Vec<_> = test_vec.into_iter().map(|_| mut_ref.push(())).collect();
95 let iter = collected_vec.into_iter();
96 iter.map(|_| mut_ref.push(())).collect()
99 fn indirect_collect_after_indirect_mapping_with_used_mutable_reference() -> Vec<()> {
100 let test_vec: Vec<()> = vec![];
101 let mut vec_2: Vec<()> = vec![];
102 let mut_ref = &mut vec_2;
103 let collected_vec: Vec<_> = test_vec.into_iter().map(|_| mut_ref.push(())).collect();
104 let iter = collected_vec.into_iter();
105 let mapped_iter = iter.map(|_| mut_ref.push(()));
106 mapped_iter.collect()
111 #[allow(clippy::needless_collect)]
112 let v = [1].iter().collect::<Vec<_>>();
113 v.into_iter().collect::<HashSet<_>>();