2 #![warn(clippy::needless_for_each)]
5 clippy::let_unit_value,
6 clippy::match_single_binding,
7 clippy::needless_return,
8 clippy::uninlined_format_args
11 use std::collections::HashMap;
14 let v: Vec<i32> = Vec::new();
16 for elem in v.iter() {
19 for elem in v.into_iter() {
23 for elem in [1, 2, 3].iter() {
27 let mut hash_map: HashMap<i32, i32> = HashMap::new();
28 for (k, v) in hash_map.iter() {
31 for (k, v) in hash_map.iter_mut() {
34 for k in hash_map.keys() {
37 for v in hash_map.values() {
41 fn my_vec() -> Vec<i32> {
44 for elem in my_vec().iter() {
49 fn should_not_lint() {
50 let v: Vec<i32> = Vec::new();
53 // `for_each` argument is not closure.
57 v.iter().for_each(print);
64 fn iter(&self) -> impl Iterator<Item = &i32> {
68 let s = MyStruct { v: Vec::new() };
69 s.iter().for_each(|elem| {
73 // `for_each` follows long iterator chain.
74 v.iter().chain(v.iter()).for_each(|v| {
77 v.as_slice().iter().for_each(|v| {
80 s.v.iter().for_each(|v| {
84 // `return` is used in `Loop` of the closure.
85 v.iter().for_each(|v| {
100 // Previously transformed iterator variable.
102 it.chain(v.iter()).for_each(|elem| {
106 // `for_each` is not directly in a statement.
108 _ => v.iter().for_each(|elem| {
113 // `for_each` is in a let bingind.
114 let _ = v.iter().for_each(|elem| {