Skip to content

Commit 431fcbc

Browse files
committed
Moved the tests for lint search_is_some to new files
`search_is_some.rs` and `search_is_some_fixable.rs`
1 parent a1cf2d3 commit 431fcbc

File tree

3 files changed

+74
-63
lines changed

3 files changed

+74
-63
lines changed

tests/ui/methods.rs

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -133,69 +133,6 @@ fn filter_next() {
133133
let _ = foo.filter().next();
134134
}
135135

136-
/// Checks implementation of `SEARCH_IS_SOME` lint.
137-
#[rustfmt::skip]
138-
fn search_is_some() {
139-
let v = vec![3, 2, 1, 0, -1, -2, -3];
140-
let y = &&42;
141-
142-
// Check `find().is_some()`, single-line case.
143-
let _ = v.iter().find(|&x| *x < 0).is_some();
144-
let _ = (0..1).find(|x| **y == *x).is_some(); // one dereference less
145-
let _ = (0..1).find(|x| *x == 0).is_some();
146-
let _ = v.iter().find(|x| **x == 0).is_some();
147-
148-
// Check `find().is_some()`, multi-line case.
149-
let _ = v.iter().find(|&x| {
150-
*x < 0
151-
}
152-
).is_some();
153-
154-
// Check `position().is_some()`, single-line case.
155-
let _ = v.iter().position(|&x| x < 0).is_some();
156-
157-
// Check `position().is_some()`, multi-line case.
158-
let _ = v.iter().position(|&x| {
159-
x < 0
160-
}
161-
).is_some();
162-
163-
// Check `rposition().is_some()`, single-line case.
164-
let _ = v.iter().rposition(|&x| x < 0).is_some();
165-
166-
// Check `rposition().is_some()`, multi-line case.
167-
let _ = v.iter().rposition(|&x| {
168-
x < 0
169-
}
170-
).is_some();
171-
172-
let s1 = String::from("hello world");
173-
let s2 = String::from("world");
174-
// Check caller `find()` is a &`static str case
175-
let _ = "hello world".find("world").is_some();
176-
let _ = "hello world".find(&s2).is_some();
177-
let _ = "hello world".find(&s2[2..]).is_some();
178-
// Check caller of `find()` is a String case
179-
let _ = s1.find("world").is_some();
180-
let _ = s1.find(&s2).is_some();
181-
let _ = s1.find(&s2[2..]).is_some();
182-
// Check caller of `find()` is a slice of String case
183-
let _ = s1[2..].find("world").is_some();
184-
let _ = s1[2..].find(&s2).is_some();
185-
let _ = s1[2..].find(&s2[2..]).is_some();
186-
187-
// Check that we don't lint if `find()` is called with
188-
// Pattern that is not a string
189-
let _ = s1.find(|c: char| c == 'o' || c == 'l').is_some();
190-
191-
// Check that we don't lint if the caller is not an `Iterator` or string
192-
let foo = IteratorFalsePositives { foo: 0 };
193-
let _ = foo.find().is_some();
194-
let _ = foo.position().is_some();
195-
let _ = foo.rposition().is_some();
196-
}
197-
198136
fn main() {
199137
filter_next();
200-
search_is_some();
201138
}

tests/ui/search_is_some.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#[macro_use]
2+
extern crate option_helpers;
3+
use option_helpers::IteratorFalsePositives;
4+
5+
#[warn(clippy::search_is_some)]
6+
#[rustfmt::skip]
7+
fn main() {
8+
let v = vec![3, 2, 1, 0, -1, -2, -3];
9+
let y = &&42;
10+
11+
12+
// Check `find().is_some()`, multi-line case.
13+
let _ = v.iter().find(|&x| {
14+
*x < 0
15+
}
16+
).is_some();
17+
18+
// Check `position().is_some()`, multi-line case.
19+
let _ = v.iter().position(|&x| {
20+
x < 0
21+
}
22+
).is_some();
23+
24+
// Check `rposition().is_some()`, multi-line case.
25+
let _ = v.iter().rposition(|&x| {
26+
x < 0
27+
}
28+
).is_some();
29+
30+
// Check that we don't lint if the caller is not an `Iterator` or string
31+
let foo = IteratorFalsePositives { foo: 0 };
32+
let _ = foo.find().is_some();
33+
let _ = foo.position().is_some();
34+
let _ = foo.rposition().is_some();
35+
// check that we don't lint if `find()` is called with
36+
// `Pattern` that is not a string
37+
let _ = "hello world".find(|c: char| c == 'o' || c == 'l').is_some();
38+
}
39+

tests/ui/search_is_some_fixable.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// run-rustfix
2+
3+
#![warn(clippy::search_is_some)]
4+
5+
fn main() {
6+
let v = vec![3, 2, 1, 0, -1, -2, -3];
7+
let y = &&42;
8+
9+
// Check `find().is_some()`, single-line case.
10+
let _ = v.iter().find(|&x| *x < 0).is_some();
11+
let _ = (0..1).find(|x| **y == *x).is_some(); // one dereference less
12+
let _ = (0..1).find(|x| *x == 0).is_some();
13+
let _ = v.iter().find(|x| **x == 0).is_some();
14+
15+
// Check `position().is_some()`, single-line case.
16+
let _ = v.iter().position(|&x| x < 0).is_some();
17+
18+
// Check `rposition().is_some()`, single-line case.
19+
let _ = v.iter().rposition(|&x| x < 0).is_some();
20+
21+
let s1 = String::from("hello world");
22+
let s2 = String::from("world");
23+
// caller of `find()` is a `&`static str`
24+
let _ = "hello world".find("world").is_some();
25+
let _ = "hello world".find(&s2).is_some();
26+
let _ = "hello world".find(&s2[2..]).is_some();
27+
// caller of `find()` is a `String`
28+
let _ = s1.find("world").is_some();
29+
let _ = s1.find(&s2).is_some();
30+
let _ = s1.find(&s2[2..]).is_some();
31+
// caller of `find()` is slice of `String`
32+
let _ = s1[2..].find("world").is_some();
33+
let _ = s1[2..].find(&s2).is_some();
34+
let _ = s1[2..].find(&s2[2..]).is_some();
35+
}

0 commit comments

Comments
 (0)