about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPhilipp Hansch <dev@phansch.net>2019-04-11 07:58:50 +0200
committerPhilipp Hansch <dev@phansch.net>2019-04-11 08:23:43 +0200
commit25e2affd3116bd258789768c50a4d43a29779e8f (patch)
tree49bed2116ec8aca81a9de47a0dd6b660703e3c75
parentfdc2255e8189819fe58e1aa191e81ad28049edf2 (diff)
downloadrust-25e2affd3116bd258789768c50a4d43a29779e8f.tar.gz
rust-25e2affd3116bd258789768c50a4d43a29779e8f.zip
UI test cleanup: Extract iter_nth tests
-rw-r--r--tests/ui/iter_nth.rs56
-rw-r--r--tests/ui/iter_nth.stderr46
-rw-r--r--tests/ui/methods.rs45
-rw-r--r--tests/ui/methods.stderr64
4 files changed, 112 insertions, 99 deletions
diff --git a/tests/ui/iter_nth.rs b/tests/ui/iter_nth.rs
new file mode 100644
index 00000000000..9c21dd82ee4
--- /dev/null
+++ b/tests/ui/iter_nth.rs
@@ -0,0 +1,56 @@
+// aux-build:option_helpers.rs
+
+#![warn(clippy::iter_nth)]
+
+#[macro_use]
+extern crate option_helpers;
+
+use option_helpers::IteratorFalsePositives;
+use std::collections::VecDeque;
+
+/// Struct to generate false positives for things with `.iter()`.
+#[derive(Copy, Clone)]
+struct HasIter;
+
+impl HasIter {
+    fn iter(self) -> IteratorFalsePositives {
+        IteratorFalsePositives { foo: 0 }
+    }
+
+    fn iter_mut(self) -> IteratorFalsePositives {
+        IteratorFalsePositives { foo: 0 }
+    }
+}
+
+/// Checks implementation of `ITER_NTH` lint.
+fn iter_nth() {
+    let mut some_vec = vec![0, 1, 2, 3];
+    let mut boxed_slice: Box<[u8]> = Box::new([0, 1, 2, 3]);
+    let mut some_vec_deque: VecDeque<_> = some_vec.iter().cloned().collect();
+
+    {
+        // Make sure we lint `.iter()` for relevant types.
+        let bad_vec = some_vec.iter().nth(3);
+        let bad_slice = &some_vec[..].iter().nth(3);
+        let bad_boxed_slice = boxed_slice.iter().nth(3);
+        let bad_vec_deque = some_vec_deque.iter().nth(3);
+    }
+
+    {
+        // Make sure we lint `.iter_mut()` for relevant types.
+        let bad_vec = some_vec.iter_mut().nth(3);
+    }
+    {
+        let bad_slice = &some_vec[..].iter_mut().nth(3);
+    }
+    {
+        let bad_vec_deque = some_vec_deque.iter_mut().nth(3);
+    }
+
+    // Make sure we don't lint for non-relevant types.
+    let false_positive = HasIter;
+    let ok = false_positive.iter().nth(3);
+    let ok_mut = false_positive.iter_mut().nth(3);
+}
+
+fn main() {}
diff --git a/tests/ui/iter_nth.stderr b/tests/ui/iter_nth.stderr
new file mode 100644
index 00000000000..70412f78404
--- /dev/null
+++ b/tests/ui/iter_nth.stderr
@@ -0,0 +1,46 @@
+error: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable
+  --> $DIR/iter_nth.rs:33:23
+   |
+LL |         let bad_vec = some_vec.iter().nth(3);
+   |                       ^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: `-D clippy::iter-nth` implied by `-D warnings`
+
+error: called `.iter().nth()` on a slice. Calling `.get()` is both faster and more readable
+  --> $DIR/iter_nth.rs:34:26
+   |
+LL |         let bad_slice = &some_vec[..].iter().nth(3);
+   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: called `.iter().nth()` on a slice. Calling `.get()` is both faster and more readable
+  --> $DIR/iter_nth.rs:35:31
+   |
+LL |         let bad_boxed_slice = boxed_slice.iter().nth(3);
+   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: called `.iter().nth()` on a VecDeque. Calling `.get()` is both faster and more readable
+  --> $DIR/iter_nth.rs:36:29
+   |
+LL |         let bad_vec_deque = some_vec_deque.iter().nth(3);
+   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: called `.iter_mut().nth()` on a Vec. Calling `.get_mut()` is both faster and more readable
+  --> $DIR/iter_nth.rs:41:23
+   |
+LL |         let bad_vec = some_vec.iter_mut().nth(3);
+   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: called `.iter_mut().nth()` on a slice. Calling `.get_mut()` is both faster and more readable
+  --> $DIR/iter_nth.rs:44:26
+   |
+LL |         let bad_slice = &some_vec[..].iter_mut().nth(3);
+   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: called `.iter_mut().nth()` on a VecDeque. Calling `.get_mut()` is both faster and more readable
+  --> $DIR/iter_nth.rs:47:29
+   |
+LL |         let bad_vec_deque = some_vec_deque.iter_mut().nth(3);
+   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 7 previous errors
+
diff --git a/tests/ui/methods.rs b/tests/ui/methods.rs
index 7ddeb2f87e1..673176911a9 100644
--- a/tests/ui/methods.rs
+++ b/tests/ui/methods.rs
@@ -215,20 +215,6 @@ fn option_methods() {
                 );
 }
 
-/// Struct to generate false positives for things with `.iter()`.
-#[derive(Copy, Clone)]
-struct HasIter;
-
-impl HasIter {
-    fn iter(self) -> IteratorFalsePositives {
-        IteratorFalsePositives { foo: 0 }
-    }
-
-    fn iter_mut(self) -> IteratorFalsePositives {
-        IteratorFalsePositives { foo: 0 }
-    }
-}
-
 /// Checks implementation of `FILTER_NEXT` lint.
 #[rustfmt::skip]
 fn filter_next() {
@@ -287,37 +273,6 @@ fn search_is_some() {
     let _ = foo.rposition().is_some();
 }
 
-/// Checks implementation of `ITER_NTH` lint.
-fn iter_nth() {
-    let mut some_vec = vec![0, 1, 2, 3];
-    let mut boxed_slice: Box<[u8]> = Box::new([0, 1, 2, 3]);
-    let mut some_vec_deque: VecDeque<_> = some_vec.iter().cloned().collect();
-
-    {
-        // Make sure we lint `.iter()` for relevant types.
-        let bad_vec = some_vec.iter().nth(3);
-        let bad_slice = &some_vec[..].iter().nth(3);
-        let bad_boxed_slice = boxed_slice.iter().nth(3);
-        let bad_vec_deque = some_vec_deque.iter().nth(3);
-    }
-
-    {
-        // Make sure we lint `.iter_mut()` for relevant types.
-        let bad_vec = some_vec.iter_mut().nth(3);
-    }
-    {
-        let bad_slice = &some_vec[..].iter_mut().nth(3);
-    }
-    {
-        let bad_vec_deque = some_vec_deque.iter_mut().nth(3);
-    }
-
-    // Make sure we don't lint for non-relevant types.
-    let false_positive = HasIter;
-    let ok = false_positive.iter().nth(3);
-    let ok_mut = false_positive.iter_mut().nth(3);
-}
-
 #[allow(clippy::similar_names)]
 fn main() {
     let opt = Some(0);
diff --git a/tests/ui/methods.stderr b/tests/ui/methods.stderr
index 9f546e69892..b86220f5dc2 100644
--- a/tests/ui/methods.stderr
+++ b/tests/ui/methods.stderr
@@ -154,7 +154,7 @@ LL |                        });
    |
 
 error: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead.
-  --> $DIR/methods.rs:238:13
+  --> $DIR/methods.rs:224:13
    |
 LL |     let _ = v.iter().filter(|&x| *x < 0).next();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -163,7 +163,7 @@ LL |     let _ = v.iter().filter(|&x| *x < 0).next();
    = note: replace `filter(|&x| *x < 0).next()` with `find(|&x| *x < 0)`
 
 error: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead.
-  --> $DIR/methods.rs:241:13
+  --> $DIR/methods.rs:227:13
    |
 LL |       let _ = v.iter().filter(|&x| {
    |  _____________^
@@ -173,7 +173,7 @@ LL | |                    ).next();
    | |___________________________^
 
 error: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`.
-  --> $DIR/methods.rs:257:13
+  --> $DIR/methods.rs:243:13
    |
 LL |     let _ = v.iter().find(|&x| *x < 0).is_some();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -182,7 +182,7 @@ LL |     let _ = v.iter().find(|&x| *x < 0).is_some();
    = note: replace `find(|&x| *x < 0).is_some()` with `any(|&x| *x < 0)`
 
 error: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`.
-  --> $DIR/methods.rs:260:13
+  --> $DIR/methods.rs:246:13
    |
 LL |       let _ = v.iter().find(|&x| {
    |  _____________^
@@ -192,7 +192,7 @@ LL | |                    ).is_some();
    | |______________________________^
 
 error: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`.
-  --> $DIR/methods.rs:266:13
+  --> $DIR/methods.rs:252:13
    |
 LL |     let _ = v.iter().position(|&x| x < 0).is_some();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -200,7 +200,7 @@ LL |     let _ = v.iter().position(|&x| x < 0).is_some();
    = note: replace `position(|&x| x < 0).is_some()` with `any(|&x| x < 0)`
 
 error: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`.
-  --> $DIR/methods.rs:269:13
+  --> $DIR/methods.rs:255:13
    |
 LL |       let _ = v.iter().position(|&x| {
    |  _____________^
@@ -210,7 +210,7 @@ LL | |                    ).is_some();
    | |______________________________^
 
 error: called `is_some()` after searching an `Iterator` with rposition. This is more succinctly expressed by calling `any()`.
-  --> $DIR/methods.rs:275:13
+  --> $DIR/methods.rs:261:13
    |
 LL |     let _ = v.iter().rposition(|&x| x < 0).is_some();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -218,7 +218,7 @@ LL |     let _ = v.iter().rposition(|&x| x < 0).is_some();
    = note: replace `rposition(|&x| x < 0).is_some()` with `any(|&x| x < 0)`
 
 error: called `is_some()` after searching an `Iterator` with rposition. This is more succinctly expressed by calling `any()`.
-  --> $DIR/methods.rs:278:13
+  --> $DIR/methods.rs:264:13
    |
 LL |       let _ = v.iter().rposition(|&x| {
    |  _____________^
@@ -227,57 +227,13 @@ LL | |                                }
 LL | |                    ).is_some();
    | |______________________________^
 
-error: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable
-  --> $DIR/methods.rs:298:23
-   |
-LL |         let bad_vec = some_vec.iter().nth(3);
-   |                       ^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `-D clippy::iter-nth` implied by `-D warnings`
-
-error: called `.iter().nth()` on a slice. Calling `.get()` is both faster and more readable
-  --> $DIR/methods.rs:299:26
-   |
-LL |         let bad_slice = &some_vec[..].iter().nth(3);
-   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: called `.iter().nth()` on a slice. Calling `.get()` is both faster and more readable
-  --> $DIR/methods.rs:300:31
-   |
-LL |         let bad_boxed_slice = boxed_slice.iter().nth(3);
-   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: called `.iter().nth()` on a VecDeque. Calling `.get()` is both faster and more readable
-  --> $DIR/methods.rs:301:29
-   |
-LL |         let bad_vec_deque = some_vec_deque.iter().nth(3);
-   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: called `.iter_mut().nth()` on a Vec. Calling `.get_mut()` is both faster and more readable
-  --> $DIR/methods.rs:306:23
-   |
-LL |         let bad_vec = some_vec.iter_mut().nth(3);
-   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: called `.iter_mut().nth()` on a slice. Calling `.get_mut()` is both faster and more readable
-  --> $DIR/methods.rs:309:26
-   |
-LL |         let bad_slice = &some_vec[..].iter_mut().nth(3);
-   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: called `.iter_mut().nth()` on a VecDeque. Calling `.get_mut()` is both faster and more readable
-  --> $DIR/methods.rs:312:29
-   |
-LL |         let bad_vec_deque = some_vec_deque.iter_mut().nth(3);
-   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
 error: used unwrap() on an Option value. If you don't want to handle the None case gracefully, consider using expect() to provide a better panic message
-  --> $DIR/methods.rs:324:13
+  --> $DIR/methods.rs:279:13
    |
 LL |     let _ = opt.unwrap();
    |             ^^^^^^^^^^^^
    |
    = note: `-D clippy::option-unwrap-used` implied by `-D warnings`
 
-error: aborting due to 32 previous errors
+error: aborting due to 25 previous errors