|
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