merge explicit_into_iter_fn_arg into useless_conversion
This commit is contained in:
parent
6a76101d3a
commit
de1f410018
11 changed files with 234 additions and 258 deletions
|
|
@ -1,33 +0,0 @@
|
|||
//@run-rustfix
|
||||
|
||||
#![allow(unused, clippy::useless_conversion)]
|
||||
#![warn(clippy::explicit_into_iter_fn_arg)]
|
||||
|
||||
fn a<T>(_: T) {}
|
||||
fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
fn c(_: impl IntoIterator<Item = i32>) {}
|
||||
fn d<T>(_: T)
|
||||
where
|
||||
T: IntoIterator<Item = i32>,
|
||||
{
|
||||
}
|
||||
fn f(_: std::vec::IntoIter<i32>) {}
|
||||
|
||||
fn main() {
|
||||
a(vec![1, 2].into_iter());
|
||||
b(vec![1, 2]);
|
||||
c(vec![1, 2]);
|
||||
d(vec![1, 2]);
|
||||
b([&1, &2, &3].into_iter().cloned());
|
||||
|
||||
// Don't lint chained `.into_iter().into_iter()` calls. Covered by useless_conversion.
|
||||
b(vec![1, 2].into_iter().into_iter());
|
||||
b(vec![1, 2].into_iter().into_iter().into_iter());
|
||||
|
||||
macro_rules! macro_generated {
|
||||
() => {
|
||||
vec![1, 2].into_iter()
|
||||
};
|
||||
}
|
||||
b(macro_generated!());
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
//@run-rustfix
|
||||
|
||||
#![allow(unused, clippy::useless_conversion)]
|
||||
#![warn(clippy::explicit_into_iter_fn_arg)]
|
||||
|
||||
fn a<T>(_: T) {}
|
||||
fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
fn c(_: impl IntoIterator<Item = i32>) {}
|
||||
fn d<T>(_: T)
|
||||
where
|
||||
T: IntoIterator<Item = i32>,
|
||||
{
|
||||
}
|
||||
fn f(_: std::vec::IntoIter<i32>) {}
|
||||
|
||||
fn main() {
|
||||
a(vec![1, 2].into_iter());
|
||||
b(vec![1, 2].into_iter());
|
||||
c(vec![1, 2].into_iter());
|
||||
d(vec![1, 2].into_iter());
|
||||
b([&1, &2, &3].into_iter().cloned());
|
||||
|
||||
// Don't lint chained `.into_iter().into_iter()` calls. Covered by useless_conversion.
|
||||
b(vec![1, 2].into_iter().into_iter());
|
||||
b(vec![1, 2].into_iter().into_iter().into_iter());
|
||||
|
||||
macro_rules! macro_generated {
|
||||
() => {
|
||||
vec![1, 2].into_iter()
|
||||
};
|
||||
}
|
||||
b(macro_generated!());
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/explicit_into_iter_fn_arg.rs:18:7
|
||||
|
|
||||
LL | b(vec![1, 2].into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/explicit_into_iter_fn_arg.rs:7:9
|
||||
|
|
||||
LL | fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= note: `-D clippy::explicit-into-iter-fn-arg` implied by `-D warnings`
|
||||
|
||||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/explicit_into_iter_fn_arg.rs:19:7
|
||||
|
|
||||
LL | c(vec![1, 2].into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/explicit_into_iter_fn_arg.rs:8:14
|
||||
|
|
||||
LL | fn c(_: impl IntoIterator<Item = i32>) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/explicit_into_iter_fn_arg.rs:20:7
|
||||
|
|
||||
LL | d(vec![1, 2].into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/explicit_into_iter_fn_arg.rs:11:8
|
||||
|
|
||||
LL | T: IntoIterator<Item = i32>,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
|
@ -155,6 +155,35 @@ fn main() {
|
|||
let _ = vec![s4, s4, s4].into_iter();
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
fn explicit_into_iter_fn_arg() {
|
||||
fn a<T>(_: T) {}
|
||||
fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
fn c(_: impl IntoIterator<Item = i32>) {}
|
||||
fn d<T>(_: T)
|
||||
where
|
||||
T: IntoIterator<Item = i32>,
|
||||
{
|
||||
}
|
||||
fn f(_: std::vec::IntoIter<i32>) {}
|
||||
|
||||
a(vec![1, 2].into_iter());
|
||||
b(vec![1, 2]);
|
||||
c(vec![1, 2]);
|
||||
d(vec![1, 2]);
|
||||
b([&1, &2, &3].into_iter().cloned());
|
||||
|
||||
b(vec![1, 2]);
|
||||
b(vec![1, 2]);
|
||||
|
||||
macro_rules! macro_generated {
|
||||
() => {
|
||||
vec![1, 2].into_iter()
|
||||
};
|
||||
}
|
||||
b(macro_generated!());
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
struct Foo<const C: char>;
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,35 @@ fn main() {
|
|||
let _ = vec![s4, s4, s4].into_iter().into_iter();
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
fn explicit_into_iter_fn_arg() {
|
||||
fn a<T>(_: T) {}
|
||||
fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
fn c(_: impl IntoIterator<Item = i32>) {}
|
||||
fn d<T>(_: T)
|
||||
where
|
||||
T: IntoIterator<Item = i32>,
|
||||
{
|
||||
}
|
||||
fn f(_: std::vec::IntoIter<i32>) {}
|
||||
|
||||
a(vec![1, 2].into_iter());
|
||||
b(vec![1, 2].into_iter());
|
||||
c(vec![1, 2].into_iter());
|
||||
d(vec![1, 2].into_iter());
|
||||
b([&1, &2, &3].into_iter().cloned());
|
||||
|
||||
b(vec![1, 2].into_iter().into_iter());
|
||||
b(vec![1, 2].into_iter().into_iter().into_iter());
|
||||
|
||||
macro_rules! macro_generated {
|
||||
() => {
|
||||
vec![1, 2].into_iter()
|
||||
};
|
||||
}
|
||||
b(macro_generated!());
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
struct Foo<const C: char>;
|
||||
|
||||
|
|
|
|||
|
|
@ -118,5 +118,65 @@ error: useless conversion to the same type: `std::vec::IntoIter<Foo<'a'>>`
|
|||
LL | let _ = vec![s4, s4, s4].into_iter().into_iter();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![s4, s4, s4].into_iter()`
|
||||
|
||||
error: aborting due to 19 previous errors
|
||||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/useless_conversion.rs:171:7
|
||||
|
|
||||
LL | b(vec![1, 2].into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/useless_conversion.rs:161:13
|
||||
|
|
||||
LL | fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/useless_conversion.rs:172:7
|
||||
|
|
||||
LL | c(vec![1, 2].into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/useless_conversion.rs:162:18
|
||||
|
|
||||
LL | fn c(_: impl IntoIterator<Item = i32>) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/useless_conversion.rs:173:7
|
||||
|
|
||||
LL | d(vec![1, 2].into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/useless_conversion.rs:165:12
|
||||
|
|
||||
LL | T: IntoIterator<Item = i32>,
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/useless_conversion.rs:176:7
|
||||
|
|
||||
LL | b(vec![1, 2].into_iter().into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/useless_conversion.rs:161:13
|
||||
|
|
||||
LL | fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: explicit call to `.into_iter()` in function argument accepting `IntoIterator`
|
||||
--> $DIR/useless_conversion.rs:177:7
|
||||
|
|
||||
LL | b(vec![1, 2].into_iter().into_iter().into_iter());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `vec![1, 2]`
|
||||
|
|
||||
note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()`
|
||||
--> $DIR/useless_conversion.rs:161:13
|
||||
|
|
||||
LL | fn b<T: IntoIterator<Item = i32>>(_: T) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 24 previous errors
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue