about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRyan Sullivant <rsulli55@gmail.com>2020-10-17 14:07:22 -0700
committerRyan Sullivant <rsulli55@gmail.com>2020-11-10 23:18:47 -0700
commit431fcbcc00eb4634178406c1afdf955e5b3be07a (patch)
tree4bbe288908acbc86bf950c6649e32b844570028b
parenta1cf2d334d685fa11fdc96fc98f35292254e5651 (diff)
downloadrust-431fcbcc00eb4634178406c1afdf955e5b3be07a.tar.gz
rust-431fcbcc00eb4634178406c1afdf955e5b3be07a.zip
Moved the tests for lint `search_is_some` to new files
`search_is_some.rs` and `search_is_some_fixable.rs`
-rw-r--r--tests/ui/methods.rs63
-rw-r--r--tests/ui/search_is_some.rs39
-rw-r--r--tests/ui/search_is_some_fixable.rs35
3 files changed, 74 insertions, 63 deletions
diff --git a/tests/ui/methods.rs b/tests/ui/methods.rs
index 92ec00a11d2..513d930e056 100644
--- a/tests/ui/methods.rs
+++ b/tests/ui/methods.rs
@@ -133,69 +133,6 @@ fn filter_next() {
     let _ = foo.filter().next();
 }
 
-/// Checks implementation of `SEARCH_IS_SOME` lint.
-#[rustfmt::skip]
-fn search_is_some() {
-    let v = vec![3, 2, 1, 0, -1, -2, -3];
-    let y = &&42;
-
-    // Check `find().is_some()`, single-line case.
-    let _ = v.iter().find(|&x| *x < 0).is_some();
-    let _ = (0..1).find(|x| **y == *x).is_some(); // one dereference less
-    let _ = (0..1).find(|x| *x == 0).is_some();
-    let _ = v.iter().find(|x| **x == 0).is_some();
-
-    // Check `find().is_some()`, multi-line case.
-    let _ = v.iter().find(|&x| {
-                              *x < 0
-                          }
-                   ).is_some();
-
-    // Check `position().is_some()`, single-line case.
-    let _ = v.iter().position(|&x| x < 0).is_some();
-
-    // Check `position().is_some()`, multi-line case.
-    let _ = v.iter().position(|&x| {
-                                  x < 0
-                              }
-                   ).is_some();
-
-    // Check `rposition().is_some()`, single-line case.
-    let _ = v.iter().rposition(|&x| x < 0).is_some();
-
-    // Check `rposition().is_some()`, multi-line case.
-    let _ = v.iter().rposition(|&x| {
-                                   x < 0
-                               }
-                   ).is_some();
-    
-    let s1 = String::from("hello world");
-    let s2 = String::from("world");
-    // Check caller `find()` is a &`static str case
-    let _ = "hello world".find("world").is_some();
-    let _ = "hello world".find(&s2).is_some();
-    let _ = "hello world".find(&s2[2..]).is_some();
-    // Check caller of `find()` is a String case
-    let _ = s1.find("world").is_some();
-    let _ = s1.find(&s2).is_some();
-    let _ = s1.find(&s2[2..]).is_some();
-    //  Check caller of `find()` is a slice of String case
-    let _ = s1[2..].find("world").is_some();
-    let _ = s1[2..].find(&s2).is_some();
-    let _ = s1[2..].find(&s2[2..]).is_some();
-
-    // Check that we don't lint if `find()` is called with
-    // Pattern that is not a string
-    let _ = s1.find(|c: char| c == 'o' || c == 'l').is_some();
-
-    // Check that we don't lint if the caller is not an `Iterator` or string
-    let foo = IteratorFalsePositives { foo: 0 };
-    let _ = foo.find().is_some();
-    let _ = foo.position().is_some();
-    let _ = foo.rposition().is_some();
-}
-
 fn main() {
     filter_next();
-    search_is_some();
 }
diff --git a/tests/ui/search_is_some.rs b/tests/ui/search_is_some.rs
new file mode 100644
index 00000000000..1ce372ab1d3
--- /dev/null
+++ b/tests/ui/search_is_some.rs
@@ -0,0 +1,39 @@
+#[macro_use]
+extern crate option_helpers;
+use option_helpers::IteratorFalsePositives;
+
+#[warn(clippy::search_is_some)]
+#[rustfmt::skip]
+fn main() {
+    let v = vec![3, 2, 1, 0, -1, -2, -3];
+    let y = &&42;
+
+
+    // Check `find().is_some()`, multi-line case.
+    let _ = v.iter().find(|&x| {
+                              *x < 0
+                          }
+                   ).is_some();
+
+    // Check `position().is_some()`, multi-line case.
+    let _ = v.iter().position(|&x| {
+                                  x < 0
+                              }
+                   ).is_some();
+
+    // Check `rposition().is_some()`, multi-line case.
+    let _ = v.iter().rposition(|&x| {
+                                   x < 0
+                               }
+                   ).is_some();
+
+    // Check that we don't lint if the caller is not an `Iterator` or string
+    let foo = IteratorFalsePositives { foo: 0 };
+    let _ = foo.find().is_some();
+    let _ = foo.position().is_some();
+    let _ = foo.rposition().is_some();
+    // check that we don't lint if `find()` is called with
+    // `Pattern` that is not a string
+    let _ = "hello world".find(|c: char| c == 'o' || c == 'l').is_some();
+}
+    
diff --git a/tests/ui/search_is_some_fixable.rs b/tests/ui/search_is_some_fixable.rs
new file mode 100644
index 00000000000..5bffb7e849f
--- /dev/null
+++ b/tests/ui/search_is_some_fixable.rs
@@ -0,0 +1,35 @@
+// run-rustfix
+
+#![warn(clippy::search_is_some)]
+
+fn main() {
+    let v = vec![3, 2, 1, 0, -1, -2, -3];
+    let y = &&42;
+    
+    // Check `find().is_some()`, single-line case.
+    let _ = v.iter().find(|&x| *x < 0).is_some();
+    let _ = (0..1).find(|x| **y == *x).is_some(); // one dereference less
+    let _ = (0..1).find(|x| *x == 0).is_some();
+    let _ = v.iter().find(|x| **x == 0).is_some();
+    
+    // Check `position().is_some()`, single-line case.
+    let _ = v.iter().position(|&x| x < 0).is_some();
+    
+    // Check `rposition().is_some()`, single-line case.
+    let _ = v.iter().rposition(|&x| x < 0).is_some();
+
+    let s1 = String::from("hello world");
+    let s2 = String::from("world");
+    // caller of `find()` is a `&`static str`
+    let _ = "hello world".find("world").is_some();
+    let _ = "hello world".find(&s2).is_some();
+    let _ = "hello world".find(&s2[2..]).is_some();
+    // caller of `find()` is a `String`
+    let _ = s1.find("world").is_some();
+    let _ = s1.find(&s2).is_some();
+    let _ = s1.find(&s2[2..]).is_some();
+    // caller of `find()` is slice of `String`
+    let _ = s1[2..].find("world").is_some();
+    let _ = s1[2..].find(&s2).is_some();
+    let _ = s1[2..].find(&s2[2..]).is_some();
+}