]> git.lizzy.rs Git - rust.git/blob - tests/ui/iter_overeager_cloned.fixed
Auto merge of #8374 - Alexendoo:bless-revisions, r=camsteffen
[rust.git] / tests / ui / iter_overeager_cloned.fixed
1 // run-rustfix
2 #![warn(clippy::iter_overeager_cloned, clippy::redundant_clone, clippy::filter_next)]
3
4 fn main() {
5     let vec = vec!["1".to_string(), "2".to_string(), "3".to_string()];
6
7     let _: Option<String> = vec.iter().last().cloned();
8
9     let _: Option<String> = vec.iter().chain(vec.iter()).next().cloned();
10
11     let _: usize = vec.iter().filter(|x| x == &"2").count();
12
13     let _: Vec<_> = vec.iter().take(2).cloned().collect();
14
15     let _: Vec<_> = vec.iter().skip(2).cloned().collect();
16
17     let _ = vec.iter().filter(|x| x == &"2").nth(2).cloned();
18
19     let _ = [Some(Some("str".to_string())), Some(Some("str".to_string()))]
20         .iter().flatten().cloned();
21
22     // Not implemented yet
23     let _ = vec.iter().cloned().filter(|x| x.starts_with('2'));
24
25     // Not implemented yet
26     let _ = vec.iter().cloned().map(|x| x.len());
27
28     // This would fail if changed.
29     let _ = vec.iter().cloned().map(|x| x + "2");
30
31     // Not implemented yet
32     let _ = vec.iter().cloned().find(|x| x == "2");
33
34     // Not implemented yet
35     let _ = vec.iter().cloned().for_each(|x| assert!(!x.is_empty()));
36
37     // Not implemented yet
38     let _ = vec.iter().cloned().all(|x| x.len() == 1);
39
40     // Not implemented yet
41     let _ = vec.iter().cloned().any(|x| x.len() == 1);
42
43     // Should probably stay as it is.
44     let _ = [0, 1, 2, 3, 4].iter().cloned().take(10);
45 }