rust/tests
bors e19a05cbb3 Auto merge of #8992 - kyoto7250:fix_8753, r=flip1995
feat(fix): Do not lint if the target code is inside a loop

close #8753

we consider the following code.

```rust
fn main() {
    let vec = vec![1];
    let w: Vec<usize> = vec.iter().map(|i| i * i).collect();  // <- once.

    for i in 0..2 {
        let _ = w.contains(&i);
    }
}
```

and the clippy will issue the following warning.

```rust
warning: avoid using `collect()` when not needed
 --> src/main.rs:3:51
  |
3 |     let w: Vec<usize> = vec.iter().map(|i| i * i).collect();
  |                                                   ^^^^^^^
...
6 |         let _ = w.contains(&i);
  |                 -------------- the iterator could be used here instead
  |
  = note: `#[warn(clippy::needless_collect)]` on by default
  = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect
help: check if the original Iterator contains an element instead of collecting then checking
  |
3 ~
4 |
5 |     for i in 0..2 {
6 ~         let _ = vec.iter().map(|i| i * i).any(|x| x == i);
```

Rewrite the code as indicated.

```rust
fn main() {
    let vec = vec![1];

    for i in 0..2 {
        let _ = vec.iter().map(|i| i * i).any(|x| x == i);  // <- execute `map` every loop.
    }
}
```

this code is valid in the compiler, but, it is different from the code before the rewrite.
So, we should not lint, If `collect` is outside of a loop.

Thank you in advance.

---

changelog: Do not lint if the target code is inside a loop in `needless_collect`
2022-08-21 09:58:24 +00:00
..
test_utils Move/rename lazy::Sync{OnceCell,Lazy} to sync::{Once,Lazy}Lock 2022-06-16 19:54:42 +04:00
ui Auto merge of #8992 - kyoto7250:fix_8753, r=flip1995 2022-08-21 09:58:24 +00:00
ui-cargo Merge commit '3c7e7dbc15' into clippyup 2022-07-28 19:08:22 +02:00
ui-internal Fix some typos 2022-08-05 00:59:21 +03:00
ui-toml Auto merge of #9223 - sgued:unwrap-expect-used, r=giraffate 2022-08-01 01:27:03 +00:00
workspace_test Merge commit '97a5daa659' into clippyup 2022-01-13 13:18:19 +01:00
check-fmt.rs Fix adjacent code 2022-08-16 18:34:51 -04:00
clippy.toml Merge commit '3ae8faff4d' into clippyup 2021-06-03 08:41:37 +02:00
compile-test.rs Improve error if rustfix coverage test spuriously fails 2022-08-21 11:57:05 +02:00
dogfood.rs Fix adjacent code 2022-08-16 18:34:51 -04:00
integration.rs Fix adjacent code 2022-08-16 18:34:51 -04:00
lint_message_convention.rs Fix adjacent code 2022-08-16 18:34:51 -04:00
missing-test-files.rs Merge commit 'e181011378' into clippyup 2021-11-04 12:52:36 +00:00
versioncheck.rs Merge commit '984330a6ee' into clippyup 2022-04-08 10:06:10 +01:00
workspace.rs Fix adjacent code 2022-08-16 18:34:51 -04:00