|
1 | 1 | use super::{make_iterator_snippet, IncrementVisitor, InitializeVisitor, EXPLICIT_COUNTER_LOOP};
|
2 |
| -use clippy_utils::diagnostics::{span_lint_and_sugg, span_lint_and_then}; |
| 2 | +use clippy_utils::diagnostics::span_lint_and_then; |
3 | 3 | use clippy_utils::source::snippet_with_applicability;
|
4 | 4 | use clippy_utils::{get_enclosing_block, is_integer_const};
|
5 | 5 | use if_chain::if_chain;
|
@@ -34,24 +34,29 @@ pub(super) fn check<'tcx>(
|
34 | 34 | if let Some((name, ty, initializer)) = initialize_visitor.get_result();
|
35 | 35 | if is_integer_const(cx, initializer, 0);
|
36 | 36 | then {
|
37 |
| - let mut applicability = Applicability::MachineApplicable; |
| 37 | + let mut applicability = Applicability::MaybeIncorrect; |
38 | 38 |
|
39 | 39 | let int_name = match ty.map(Ty::kind) {
|
40 | 40 | // usize or inferred
|
41 | 41 | Some(ty::Uint(UintTy::Usize)) | None => {
|
42 |
| - span_lint_and_sugg( |
| 42 | + span_lint_and_then( |
43 | 43 | cx,
|
44 | 44 | EXPLICIT_COUNTER_LOOP,
|
45 | 45 | expr.span.with_hi(arg.span.hi()),
|
46 | 46 | &format!("the variable `{}` is used as a loop counter", name),
|
47 |
| - "consider using", |
48 |
| - format!( |
49 |
| - "for ({}, {}) in {}.enumerate()", |
50 |
| - name, |
51 |
| - snippet_with_applicability(cx, pat.span, "item", &mut applicability), |
52 |
| - make_iterator_snippet(cx, arg, &mut applicability), |
53 |
| - ), |
54 |
| - applicability, |
| 47 | + |diag| { |
| 48 | + diag.span_suggestion( |
| 49 | + expr.span.with_hi(arg.span.hi()), |
| 50 | + "consider using", |
| 51 | + format!( |
| 52 | + "for ({}, {}) in {}.enumerate()", |
| 53 | + name, |
| 54 | + snippet_with_applicability(cx, pat.span, "item", &mut applicability), |
| 55 | + make_iterator_snippet(cx, arg, &mut applicability), |
| 56 | + ), |
| 57 | + applicability, |
| 58 | + ); |
| 59 | + } |
55 | 60 | );
|
56 | 61 | return;
|
57 | 62 | }
|
|
0 commit comments