1 // aux-build:option_helpers.rs
2 #![warn(clippy::search_is_some)]
4 extern crate option_helpers;
5 use option_helpers::IteratorFalsePositives;
9 let v = vec![3, 2, 1, 0, -1, -2, -3];
13 // Check `find().is_some()`, multi-line case.
14 let _ = v.iter().find(|&x| {
19 // Check `position().is_some()`, multi-line case.
20 let _ = v.iter().position(|&x| {
25 // Check `rposition().is_some()`, multi-line case.
26 let _ = v.iter().rposition(|&x| {
31 // Check that we don't lint if the caller is not an `Iterator` or string
32 let falsepos = IteratorFalsePositives { foo: 0 };
33 let _ = falsepos.find().is_some();
34 let _ = falsepos.position().is_some();
35 let _ = falsepos.rposition().is_some();
36 // check that we don't lint if `find()` is called with
37 // `Pattern` that is not a string
38 let _ = "hello world".find(|c: char| c == 'o' || c == 'l').is_some();
40 // Check `find().is_some()`, single-line case.
41 let _ = (0..1).find(|x| **y == *x).is_some(); // one dereference less
42 let _ = (0..1).find(|x| *x == 0).is_some();
43 let _ = v.iter().find(|x| **x == 0).is_some();
48 let v = vec![3, 2, 1, 0, -1, -2, -3];
52 // Check `find().is_none()`, multi-line case.
53 let _ = v.iter().find(|&x| {
58 // Check `position().is_none()`, multi-line case.
59 let _ = v.iter().position(|&x| {
64 // Check `rposition().is_none()`, multi-line case.
65 let _ = v.iter().rposition(|&x| {
70 // Check that we don't lint if the caller is not an `Iterator` or string
71 let falsepos = IteratorFalsePositives { foo: 0 };
72 let _ = falsepos.find().is_none();
73 let _ = falsepos.position().is_none();
74 let _ = falsepos.rposition().is_none();
75 // check that we don't lint if `find()` is called with
76 // `Pattern` that is not a string
77 let _ = "hello world".find(|c: char| c == 'o' || c == 'l').is_none();
79 // Check `find().is_none()`, single-line case.
80 let _ = (0..1).find(|x| **y == *x).is_none(); // one dereference less
81 let _ = (0..1).find(|x| *x == 0).is_none();
82 let _ = v.iter().find(|x| **x == 0).is_none();
85 #[allow(clippy::clone_on_copy, clippy::map_clone)]
92 hand: vec![1, 2, 3, 4, 5],
94 let filter_hand = vec![5];
98 .filter(|c| filter_hand.iter().find(|cc| c == cc).is_none())
100 .collect::<Vec<_>>();
104 hand: Vec<(usize, char)>,
107 let p = PlayerTuple {
108 hand: vec![(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')],
110 let filter_hand = vec![5];
114 .filter(|(c, _)| filter_hand.iter().find(|cc| c == *cc).is_none())
116 .collect::<Vec<_>>();