Apply suggestions from code review

Co-authored-by: Alejandra González <blyxyas@gmail.com>
This commit is contained in:
Dinu Blanovschi 2023-10-12 19:05:22 +02:00
parent 0b90f72064
commit 14b82909b0
5 changed files with 135 additions and 31 deletions

View file

@ -1,10 +1,58 @@
// run-rustfix
#![allow(unused)]
#![warn(clippy::unused_enumerate_index)]
use std::iter::Enumerate;
fn main() {
let v = [1, 2, 3];
for x in v.iter() {
print!("{x}");
println!("{x}");
}
struct Dummy1;
impl Dummy1 {
fn enumerate(self) -> Vec<usize> {
vec![]
}
}
let dummy = Dummy1;
for x in dummy.enumerate() {
println!("{x}");
}
struct Dummy2;
impl Dummy2 {
fn enumerate(self) -> Enumerate<std::vec::IntoIter<usize>> {
vec![1, 2].into_iter().enumerate()
}
}
let dummy = Dummy2;
for (_, x) in dummy.enumerate() {
println!("{x}");
}
let mut with_used_iterator = [1, 2, 3].into_iter().enumerate();
with_used_iterator.next();
for (_, x) in with_used_iterator {
println!("{x}");
}
struct Dummy3(std::vec::IntoIter<usize>);
impl Iterator for Dummy3 {
type Item = usize;
fn next(&mut self) -> Option<Self::Item> {
self.0.next()
}
fn size_hint(&self) -> (usize, Option<usize>) {
self.0.size_hint()
}
}
let dummy = Dummy3(vec![1, 2, 3].into_iter());
for x in dummy {
println!("{x}");
}
}

View file

@ -1,10 +1,58 @@
// run-rustfix
#![allow(unused)]
#![warn(clippy::unused_enumerate_index)]
use std::iter::Enumerate;
fn main() {
let v = [1, 2, 3];
for (_, x) in v.iter().enumerate() {
print!("{x}");
println!("{x}");
}
struct Dummy1;
impl Dummy1 {
fn enumerate(self) -> Vec<usize> {
vec![]
}
}
let dummy = Dummy1;
for x in dummy.enumerate() {
println!("{x}");
}
struct Dummy2;
impl Dummy2 {
fn enumerate(self) -> Enumerate<std::vec::IntoIter<usize>> {
vec![1, 2].into_iter().enumerate()
}
}
let dummy = Dummy2;
for (_, x) in dummy.enumerate() {
println!("{x}");
}
let mut with_used_iterator = [1, 2, 3].into_iter().enumerate();
with_used_iterator.next();
for (_, x) in with_used_iterator {
println!("{x}");
}
struct Dummy3(std::vec::IntoIter<usize>);
impl Iterator for Dummy3 {
type Item = usize;
fn next(&mut self) -> Option<Self::Item> {
self.0.next()
}
fn size_hint(&self) -> (usize, Option<usize>) {
self.0.size_hint()
}
}
let dummy = Dummy3(vec![1, 2, 3].into_iter());
for (_, x) in dummy.enumerate() {
println!("{x}");
}
}

View file

@ -1,5 +1,5 @@
error: you seem to use `.enumerate()` and immediately discard the index
--> $DIR/unused_enumerate_index.rs:7:19
--> $DIR/unused_enumerate_index.rs:8:19
|
LL | for (_, x) in v.iter().enumerate() {
| ^^^^^^^^^^^^^^^^^^^^
@ -11,5 +11,16 @@ help: remove the `.enumerate()` call
LL | for x in v.iter() {
| ~ ~~~~~~~~
error: aborting due to previous error
error: you seem to use `.enumerate()` and immediately discard the index
--> $DIR/unused_enumerate_index.rs:55:19
|
LL | for (_, x) in dummy.enumerate() {
| ^^^^^^^^^^^^^^^^^
|
help: remove the `.enumerate()` call
|
LL | for x in dummy {
| ~ ~~~~~
error: aborting due to 2 previous errors