Clippy lints / Correctness
Clippy lint · Correctness · checked with Clippy 0.1.99
clippy::iter_next_loop: Checks for loops on x.next()
What it meansChecks for loops on x.next(). It is in the correctness group and denied by default (the build fails).
Does it matter?
next() returns either Some(value) if there was a value, or None otherwise. The insidious thing is that Option<_> implements IntoIterator, so that possibly one value will be iterated, leading to some hard to find bugs. No one will want to write such code except to win an Underhanded Rust Contest.
Code that is almost certainly wrong. Denied by default: the build fails until you fix it or allow it.
How to fix it
Clippy does not fix this one automatically. Change the code by hand:
Flagged
for x in y.next() {
..
}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::iter_next_loop)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
iter_next_loop = "allow"One run
cargo clippy -- -A clippy::iter-next-loopThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Checks for loops on x.next().
Why is this bad?
next() returns either Some(value) if there was a
value, or None otherwise. The insidious thing is that Option<_>
implements IntoIterator, so that possibly one value will be iterated,
leading to some hard to find bugs. No one will want to write such code
except to win an Underhanded Rust
Contest.
Example
for x in y.next() {
..
}
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- invalid_regexChecks regex creation (with Regex::new, RegexBuilder::new, or RegexSet::new) for correct regex syntax
- inverted_saturating_subinverted arithmetic check before subtraction
- invisible_charactersChecks for invisible Unicode characters in the code
- iter_skip_zerousage of `.skip(0)`
- iterator_step_by_zero`Iterator::step_by(0)` will panic at runtime
- let_underscore_lockChecks for let _ = sync_lock
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::invalid_regexChecks regex creation (with Regex::new, RegexBuilder::new, or RegexSet::new) for correct regex syntaxRead it next →Did this answer your question?