summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/skip_while_next.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/skip_while_next.rs')
-rw-r--r--src/tools/clippy/tests/ui/skip_while_next.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/skip_while_next.rs b/src/tools/clippy/tests/ui/skip_while_next.rs
new file mode 100644
index 000000000..a522c0f08
--- /dev/null
+++ b/src/tools/clippy/tests/ui/skip_while_next.rs
@@ -0,0 +1,29 @@
+// aux-build:option_helpers.rs
+
+#![warn(clippy::skip_while_next)]
+#![allow(clippy::blacklisted_name)]
+
+extern crate option_helpers;
+use option_helpers::IteratorFalsePositives;
+
+#[rustfmt::skip]
+fn skip_while_next() {
+ let v = vec![3, 2, 1, 0, -1, -2, -3];
+
+ // Single-line case.
+ let _ = v.iter().skip_while(|&x| *x < 0).next();
+
+ // Multi-line case.
+ let _ = v.iter().skip_while(|&x| {
+ *x < 0
+ }
+ ).next();
+
+ // Check that hat we don't lint if the caller is not an `Iterator`.
+ let foo = IteratorFalsePositives { foo: 0 };
+ let _ = foo.skip_while().next();
+}
+
+fn main() {
+ skip_while_next();
+}