mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-30 05:51:58 +00:00
Auto merge of #3605 - phansch:small_methods_ui_test_improvement, r=flip1995
UI test cleanup: Extract iter_skip_next from methods.rs cc #2038
This commit is contained in:
commit
39bd84494f
61
tests/ui/iter_skip_next.rs
Normal file
61
tests/ui/iter_skip_next.rs
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
// file at the top-level directory of this distribution.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
#![warn(clippy::iter_skip_next)]
|
||||||
|
#![allow(clippy::blacklisted_name)]
|
||||||
|
|
||||||
|
/// Struct to generate false positive for Iterator-based lints
|
||||||
|
#[derive(Copy, Clone)]
|
||||||
|
struct IteratorFalsePositives {
|
||||||
|
foo: u32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl IteratorFalsePositives {
|
||||||
|
fn filter(self) -> IteratorFalsePositives {
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
fn next(self) -> IteratorFalsePositives {
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
fn find(self) -> Option<u32> {
|
||||||
|
Some(self.foo)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn position(self) -> Option<u32> {
|
||||||
|
Some(self.foo)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn rposition(self) -> Option<u32> {
|
||||||
|
Some(self.foo)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn nth(self, n: usize) -> Option<u32> {
|
||||||
|
Some(self.foo)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn skip(self, _: usize) -> IteratorFalsePositives {
|
||||||
|
self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Checks implementation of `ITER_SKIP_NEXT` lint
|
||||||
|
fn iter_skip_next() {
|
||||||
|
let mut some_vec = vec![0, 1, 2, 3];
|
||||||
|
let _ = some_vec.iter().skip(42).next();
|
||||||
|
let _ = some_vec.iter().cycle().skip(42).next();
|
||||||
|
let _ = (1..10).skip(10).next();
|
||||||
|
let _ = &some_vec[..].iter().skip(3).next();
|
||||||
|
let foo = IteratorFalsePositives { foo: 0 };
|
||||||
|
let _ = foo.skip(42).next();
|
||||||
|
let _ = foo.filter().skip(42).next();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
28
tests/ui/iter_skip_next.stderr
Normal file
28
tests/ui/iter_skip_next.stderr
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
||||||
|
--> $DIR/iter_skip_next.rs:52:13
|
||||||
|
|
|
||||||
|
LL | let _ = some_vec.iter().skip(42).next();
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: `-D clippy::iter-skip-next` implied by `-D warnings`
|
||||||
|
|
||||||
|
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
||||||
|
--> $DIR/iter_skip_next.rs:53:13
|
||||||
|
|
|
||||||
|
LL | let _ = some_vec.iter().cycle().skip(42).next();
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
||||||
|
--> $DIR/iter_skip_next.rs:54:13
|
||||||
|
|
|
||||||
|
LL | let _ = (1..10).skip(10).next();
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
||||||
|
--> $DIR/iter_skip_next.rs:55:14
|
||||||
|
|
|
||||||
|
LL | let _ = &some_vec[..].iter().skip(3).next();
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to 4 previous errors
|
||||||
|
|
@ -390,18 +390,6 @@ fn iter_nth() {
|
|||||||
let ok_mut = false_positive.iter_mut().nth(3);
|
let ok_mut = false_positive.iter_mut().nth(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Checks implementation of `ITER_SKIP_NEXT` lint
|
|
||||||
fn iter_skip_next() {
|
|
||||||
let mut some_vec = vec![0, 1, 2, 3];
|
|
||||||
let _ = some_vec.iter().skip(42).next();
|
|
||||||
let _ = some_vec.iter().cycle().skip(42).next();
|
|
||||||
let _ = (1..10).skip(10).next();
|
|
||||||
let _ = &some_vec[..].iter().skip(3).next();
|
|
||||||
let foo = IteratorFalsePositives { foo : 0 };
|
|
||||||
let _ = foo.skip(42).next();
|
|
||||||
let _ = foo.filter().skip(42).next();
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(clippy::similar_names)]
|
#[allow(clippy::similar_names)]
|
||||||
fn main() {
|
fn main() {
|
||||||
let opt = Some(0);
|
let opt = Some(0);
|
||||||
|
@ -367,39 +367,13 @@ error: called `.iter_mut().nth()` on a VecDeque. Calling `.get_mut()` is both fa
|
|||||||
LL | let bad_vec_deque = some_vec_deque.iter_mut().nth(3);
|
LL | let bad_vec_deque = some_vec_deque.iter_mut().nth(3);
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
|
||||||
--> $DIR/methods.rs:396:13
|
|
||||||
|
|
|
||||||
LL | let _ = some_vec.iter().skip(42).next();
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
|
||||||
= note: `-D clippy::iter-skip-next` implied by `-D warnings`
|
|
||||||
|
|
||||||
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
|
||||||
--> $DIR/methods.rs:397:13
|
|
||||||
|
|
|
||||||
LL | let _ = some_vec.iter().cycle().skip(42).next();
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
|
||||||
--> $DIR/methods.rs:398:13
|
|
||||||
|
|
|
||||||
LL | let _ = (1..10).skip(10).next();
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)`
|
|
||||||
--> $DIR/methods.rs:399:14
|
|
||||||
|
|
|
||||||
LL | let _ = &some_vec[..].iter().skip(3).next();
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
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
|
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:408:13
|
--> $DIR/methods.rs:396:13
|
||||||
|
|
|
|
||||||
LL | let _ = opt.unwrap();
|
LL | let _ = opt.unwrap();
|
||||||
| ^^^^^^^^^^^^
|
| ^^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
= note: `-D clippy::option-unwrap-used` implied by `-D warnings`
|
= note: `-D clippy::option-unwrap-used` implied by `-D warnings`
|
||||||
|
|
||||||
error: aborting due to 50 previous errors
|
error: aborting due to 46 previous errors
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user