diff options
| author | Takayuki Nakata <f.seasons017@gmail.com> | 2020-10-25 23:55:41 +0900 |
|---|---|---|
| committer | Takayuki Nakata <f.seasons017@gmail.com> | 2020-10-26 00:01:20 +0900 |
| commit | 2f5d418011f80d99e0e4c8ddea3980b6cdc8332d (patch) | |
| tree | f772e9e25b9350b31d8e5bcc8659c4459cb20282 | |
| parent | 3ce820bf83657879493aa7b107634f1951e7c219 (diff) | |
| download | rust-2f5d418011f80d99e0e4c8ddea3980b6cdc8332d.tar.gz rust-2f5d418011f80d99e0e4c8ddea3980b6cdc8332d.zip | |
Add test case
| -rw-r--r-- | tests/ui/needless_collect_indirect.rs | 6 | ||||
| -rw-r--r-- | tests/ui/needless_collect_indirect.stderr | 15 |
2 files changed, 20 insertions, 1 deletions
diff --git a/tests/ui/needless_collect_indirect.rs b/tests/ui/needless_collect_indirect.rs index 4cf03e82035..4f6e5357727 100644 --- a/tests/ui/needless_collect_indirect.rs +++ b/tests/ui/needless_collect_indirect.rs @@ -16,4 +16,10 @@ fn main() { .into_iter() .map(|x| (*x, *x + 1)) .collect::<HashMap<_, _>>(); + + // #6202 + let a = "a".to_string(); + let sample = vec![a.clone(), "b".to_string(), "c".to_string()]; + let non_copy_contains = sample.into_iter().collect::<Vec<_>>(); + non_copy_contains.contains(&a); } diff --git a/tests/ui/needless_collect_indirect.stderr b/tests/ui/needless_collect_indirect.stderr index 7b8e227f304..fb807da5f8a 100644 --- a/tests/ui/needless_collect_indirect.stderr +++ b/tests/ui/needless_collect_indirect.stderr @@ -51,5 +51,18 @@ LL | LL | sample.iter().any(|x| x == &5); | -error: aborting due to 4 previous errors +error: avoid using `collect()` when not needed + --> $DIR/needless_collect_indirect.rs:23:5 + | +LL | / let non_copy_contains = sample.into_iter().collect::<Vec<_>>(); +LL | | non_copy_contains.contains(&a); + | |____^ + | +help: Check if the original Iterator contains an element instead of collecting then checking + | +LL | +LL | sample.into_iter().any(|x| x == a); + | + +error: aborting due to 5 previous errors |
