mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 06:51:58 +00:00
Merge pull request #3310 from JoshMcguigan/explicit_counter_loop-3308
explicit_counter_loop fix #3308 false positive
This commit is contained in:
commit
601cc9d2c5
@ -1952,10 +1952,7 @@ impl<'a, 'tcx> Visitor<'tcx> for IncrementVisitor<'a, 'tcx> {
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
} else if is_loop(expr) {
|
||||
walk_expr(self, expr);
|
||||
return;
|
||||
} else if is_conditional(expr) {
|
||||
} else if is_loop(expr) || is_conditional(expr) {
|
||||
self.depth += 1;
|
||||
walk_expr(self, expr);
|
||||
self.depth -= 1;
|
||||
|
@ -646,3 +646,38 @@ mod issue_1219 {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mod issue_3308 {
|
||||
#[warn(clippy::explicit_counter_loop)]
|
||||
pub fn test() {
|
||||
// should not trigger the lint because the count is incremented multiple times
|
||||
let mut skips = 0;
|
||||
let erasures = vec![];
|
||||
for i in 0..10 {
|
||||
while erasures.contains(&(i + skips)) {
|
||||
skips += 1;
|
||||
}
|
||||
println!("{}", skips);
|
||||
}
|
||||
|
||||
// should not trigger the lint because the count is incremented multiple times
|
||||
let mut skips = 0;
|
||||
for i in 0..10 {
|
||||
let mut j = 0;
|
||||
while j < 5 {
|
||||
skips += 1;
|
||||
j += 1;
|
||||
}
|
||||
println!("{}", skips);
|
||||
}
|
||||
|
||||
// should not trigger the lint because the count is incremented multiple times
|
||||
let mut skips = 0;
|
||||
for i in 0..10 {
|
||||
for j in 0..5 {
|
||||
skips += 1;
|
||||
}
|
||||
println!("{}", skips);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user