Auto merge of #8989 - kyoto7250:default_iter_empty, r=Alexendoo
feat(lint): add default_iter_empty close #8915 This PR adds `default_iter_empty` lint. This lint checks `std::iter::Empty::default()` and replace with `std::iter::empty()`. Thank you in advance. --- changelog: add `default_instead_of_iter_empty` lint.
This commit is contained in:
commit
e933bb6bc3
10 changed files with 139 additions and 0 deletions
21
tests/ui/default_instead_of_iter_empty.fixed
Normal file
21
tests/ui/default_instead_of_iter_empty.fixed
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
// run-rustfix
|
||||
#![warn(clippy::default_instead_of_iter_empty)]
|
||||
#![allow(dead_code)]
|
||||
use std::collections::HashMap;
|
||||
|
||||
#[derive(Default)]
|
||||
struct Iter {
|
||||
iter: std::iter::Empty<usize>,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
// Do lint.
|
||||
let _ = std::iter::empty::<usize>();
|
||||
let _ = std::iter::empty::<HashMap<usize, usize>>();
|
||||
let _foo: std::iter::Empty<usize> = std::iter::empty();
|
||||
|
||||
// Do not lint.
|
||||
let _ = Vec::<usize>::default();
|
||||
let _ = String::default();
|
||||
let _ = Iter::default();
|
||||
}
|
||||
21
tests/ui/default_instead_of_iter_empty.rs
Normal file
21
tests/ui/default_instead_of_iter_empty.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
// run-rustfix
|
||||
#![warn(clippy::default_instead_of_iter_empty)]
|
||||
#![allow(dead_code)]
|
||||
use std::collections::HashMap;
|
||||
|
||||
#[derive(Default)]
|
||||
struct Iter {
|
||||
iter: std::iter::Empty<usize>,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
// Do lint.
|
||||
let _ = std::iter::Empty::<usize>::default();
|
||||
let _ = std::iter::Empty::<HashMap<usize, usize>>::default();
|
||||
let _foo: std::iter::Empty<usize> = std::iter::Empty::default();
|
||||
|
||||
// Do not lint.
|
||||
let _ = Vec::<usize>::default();
|
||||
let _ = String::default();
|
||||
let _ = Iter::default();
|
||||
}
|
||||
22
tests/ui/default_instead_of_iter_empty.stderr
Normal file
22
tests/ui/default_instead_of_iter_empty.stderr
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
error: `std::iter::empty()` is the more idiomatic way
|
||||
--> $DIR/default_instead_of_iter_empty.rs:13:13
|
||||
|
|
||||
LL | let _ = std::iter::Empty::<usize>::default();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::iter::empty::<usize>()`
|
||||
|
|
||||
= note: `-D clippy::default-instead-of-iter-empty` implied by `-D warnings`
|
||||
|
||||
error: `std::iter::empty()` is the more idiomatic way
|
||||
--> $DIR/default_instead_of_iter_empty.rs:14:13
|
||||
|
|
||||
LL | let _ = std::iter::Empty::<HashMap<usize, usize>>::default();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::iter::empty::<HashMap<usize, usize>>()`
|
||||
|
||||
error: `std::iter::empty()` is the more idiomatic way
|
||||
--> $DIR/default_instead_of_iter_empty.rs:15:41
|
||||
|
|
||||
LL | let _foo: std::iter::Empty<usize> = std::iter::Empty::default();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::iter::empty()`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue