- Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-positiveIssue: The lint was triggered on code it shouldn't haveIssue: The lint was triggered on code it shouldn't havegood first issueThese issues are a good way to get started with ClippyThese issues are a good way to get started with Clippy
Description
Lint name: manual_flatten
For the following code:
let x = &[ &Some(1) ]; // warning: unnecessary `if let` since only the `Some` variant of the iterator element is used for n in x { if let Some(n) = n { println!("{:?}", n); } }
The lint suggests replacing the loop with:
for n in x.into_iter().flatten() { println!("{:?}", n); }
However, this doesn't compile, because &&Option<{integer}> is not an iterator
.
What does compile is
for n in x.into_iter().copied().flatten() { println!("{:?}", n); }
Meta
$ cargo clippy -V clippy 0.1.52 (a15f484 2021-02-22) $ rustc -Vv rustc 1.52.0-nightly (a15f484b9 2021-02-22) binary: rustc commit-hash: a15f484b918a4533ad633ea903ccce82910af342 commit-date: 2021-02-22 host: x86_64-unknown-linux-gnu release: 1.52.0-nightly LLVM version: 11.0.1
Metadata
Metadata
Assignees
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-positiveIssue: The lint was triggered on code it shouldn't haveIssue: The lint was triggered on code it shouldn't havegood first issueThese issues are a good way to get started with ClippyThese issues are a good way to get started with Clippy