diff options
| author | JarredAllen <jarredallen73@gmail.com> | 2020-07-23 09:15:16 -0700 |
|---|---|---|
| committer | JarredAllen <jarredallen73@gmail.com> | 2020-08-02 21:34:17 -0700 |
| commit | c86f4109fdd83fef1ea69c0f3c878ace0aa7c56f (patch) | |
| tree | 5f60bf2e340815a641a5be716c7fd67699c3ed0a | |
| parent | 3657c92ac978f69667b9c8bb46e51bc602b3d7ee (diff) | |
| download | rust-c86f4109fdd83fef1ea69c0f3c878ace0aa7c56f.tar.gz rust-c86f4109fdd83fef1ea69c0f3c878ace0aa7c56f.zip | |
Split indirect collects into their own test case
| -rw-r--r-- | tests/ui/needless_collect.fixed | 11 | ||||
| -rw-r--r-- | tests/ui/needless_collect.rs | 11 | ||||
| -rw-r--r-- | tests/ui/needless_collect.stderr | 17 | ||||
| -rw-r--r-- | tests/ui/needless_collect_indirect.fixed | 26 | ||||
| -rw-r--r-- | tests/ui/needless_collect_indirect.rs | 26 | ||||
| -rw-r--r-- | tests/ui/needless_collect_indirect.stderr | 55 |
6 files changed, 110 insertions, 36 deletions
diff --git a/tests/ui/needless_collect.fixed b/tests/ui/needless_collect.fixed index 60a3e206283..be37dc16b9a 100644 --- a/tests/ui/needless_collect.fixed +++ b/tests/ui/needless_collect.fixed @@ -18,15 +18,4 @@ fn main() { sample.iter().collect::<HashSet<_>>().len(); // Neither should this sample.iter().collect::<BTreeSet<_>>().len(); - let indirect_positive = sample.iter().collect::<Vec<_>>(); - indirect_positive - .into_iter() - .map(|x| (x, x + 1)) - .collect::<HashMap<_, _>>(); - let indirect_negative = sample.iter().collect::<Vec<_>>(); - indirect_negative.len(); - indirect_negative - .iter() - .map(|x| (*x, *x + 1)) - .collect::<HashMap<_, _>>(); } diff --git a/tests/ui/needless_collect.rs b/tests/ui/needless_collect.rs index 33a1ea36095..7ee603afeb0 100644 --- a/tests/ui/needless_collect.rs +++ b/tests/ui/needless_collect.rs @@ -18,15 +18,4 @@ fn main() { sample.iter().collect::<HashSet<_>>().len(); // Neither should this sample.iter().collect::<BTreeSet<_>>().len(); - let indirect_positive = sample.iter().collect::<Vec<_>>(); - indirect_positive - .into_iter() - .map(|x| (x, x + 1)) - .collect::<HashMap<_, _>>(); - let indirect_negative = sample.iter().collect::<Vec<_>>(); - indirect_negative.len(); - indirect_negative - .iter() - .map(|x| (*x, *x + 1)) - .collect::<HashMap<_, _>>(); } diff --git a/tests/ui/needless_collect.stderr b/tests/ui/needless_collect.stderr index bb67bfa83e9..9113aad90dd 100644 --- a/tests/ui/needless_collect.stderr +++ b/tests/ui/needless_collect.stderr @@ -1,21 +1,10 @@ error: avoid using `collect()` when not needed - --> $DIR/needless_collect.rs:21:5 - | -LL | let indirect_positive = sample.iter().collect::<Vec<_>>(); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: `-D clippy::needless-collect` implied by `-D warnings` -help: Use the original Iterator instead of collecting it and then producing a new one - | -LL | -LL | sample.iter() - | - -error: avoid using `collect()` when not needed --> $DIR/needless_collect.rs:11:29 | LL | let len = sample.iter().collect::<Vec<_>>().len(); | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `count()` + | + = note: `-D clippy::needless-collect` implied by `-D warnings` error: avoid using `collect()` when not needed --> $DIR/needless_collect.rs:12:15 @@ -35,5 +24,5 @@ error: avoid using `collect()` when not needed LL | sample.iter().map(|x| (x, x)).collect::<HashMap<_, _>>().len(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `count()` -error: aborting due to 5 previous errors +error: aborting due to 4 previous errors diff --git a/tests/ui/needless_collect_indirect.fixed b/tests/ui/needless_collect_indirect.fixed new file mode 100644 index 00000000000..136af42a9fe --- /dev/null +++ b/tests/ui/needless_collect_indirect.fixed @@ -0,0 +1,26 @@ +// run-rustfix + +#[allow(unused)] + +use std::collections::{HashMap, VecDeque}; + +fn main() { + let sample = [1; 5]; + let indirect_iter = sample.iter().collect::<Vec<_>>(); + indirect_iter + .into_iter() + .map(|x| (x, x + 1)) + .collect::<HashMap<_, _>>(); + let indirect_len = sample.iter().collect::<VecDeque<_>>(); + indirect_len.len(); + let indirect_empty = sample.iter().collect::<VecDeque<_>>(); + indirect_empty.is_empty(); + let indirect_contains = sample.iter().collect::<VecDeque<_>>(); + indirect_contains.contains(&&5); + let indirect_negative = sample.iter().collect::<Vec<_>>(); + indirect_negative.len(); + indirect_negative + .into_iter() + .map(|x| (*x, *x + 1)) + .collect::<HashMap<_, _>>(); +} diff --git a/tests/ui/needless_collect_indirect.rs b/tests/ui/needless_collect_indirect.rs new file mode 100644 index 00000000000..136af42a9fe --- /dev/null +++ b/tests/ui/needless_collect_indirect.rs @@ -0,0 +1,26 @@ +// run-rustfix + +#[allow(unused)] + +use std::collections::{HashMap, VecDeque}; + +fn main() { + let sample = [1; 5]; + let indirect_iter = sample.iter().collect::<Vec<_>>(); + indirect_iter + .into_iter() + .map(|x| (x, x + 1)) + .collect::<HashMap<_, _>>(); + let indirect_len = sample.iter().collect::<VecDeque<_>>(); + indirect_len.len(); + let indirect_empty = sample.iter().collect::<VecDeque<_>>(); + indirect_empty.is_empty(); + let indirect_contains = sample.iter().collect::<VecDeque<_>>(); + indirect_contains.contains(&&5); + let indirect_negative = sample.iter().collect::<Vec<_>>(); + indirect_negative.len(); + indirect_negative + .into_iter() + .map(|x| (*x, *x + 1)) + .collect::<HashMap<_, _>>(); +} diff --git a/tests/ui/needless_collect_indirect.stderr b/tests/ui/needless_collect_indirect.stderr new file mode 100644 index 00000000000..5058c171ac2 --- /dev/null +++ b/tests/ui/needless_collect_indirect.stderr @@ -0,0 +1,55 @@ +error: avoid using `collect()` when not needed + --> $DIR/needless_collect_indirect.rs:9:5 + | +LL | / let indirect_iter = sample.iter().collect::<Vec<_>>(); +LL | | indirect_iter + | |____^ + | + = note: `-D clippy::needless-collect` implied by `-D warnings` +help: Use the original Iterator instead of collecting it and then producing a new one + | +LL | +LL | sample.iter() + | + +error: avoid using `collect()` when not needed + --> $DIR/needless_collect_indirect.rs:14:5 + | +LL | / let indirect_len = sample.iter().collect::<VecDeque<_>>(); +LL | | indirect_len.len(); + | |____^ + | +help: Take the original Iterator's count instead of collecting it and finding the length + | +LL | +LL | sample.iter().count(); + | + +error: avoid using `collect()` when not needed + --> $DIR/needless_collect_indirect.rs:16:5 + | +LL | / let indirect_empty = sample.iter().collect::<VecDeque<_>>(); +LL | | indirect_empty.is_empty(); + | |____^ + | +help: Check if the original Iterator has anything instead of collecting it and seeing if it's empty + | +LL | +LL | sample.iter().next().is_none(); + | + +error: avoid using `collect()` when not needed + --> $DIR/needless_collect_indirect.rs:18:5 + | +LL | / let indirect_contains = sample.iter().collect::<VecDeque<_>>(); +LL | | indirect_contains.contains(&&5); + | |____^ + | +help: Check if the original Iterator contains an element instead of collecting then checking + | +LL | +LL | sample.iter().any(|x| x == &&5); + | + +error: aborting due to 4 previous errors + |
