11use super :: { make_iterator_snippet, IncrementVisitor , InitializeVisitor , EXPLICIT_COUNTER_LOOP } ;
2- use clippy_utils:: diagnostics:: span_lint_and_then;
2+ use clippy_utils:: diagnostics:: { span_lint_and_sugg , span_lint_and_then} ;
33use clippy_utils:: source:: snippet_with_applicability;
44use clippy_utils:: { get_enclosing_block, is_integer_const} ;
55use if_chain:: if_chain;
@@ -35,28 +35,24 @@ pub(super) fn check<'tcx>(
3535 if is_integer_const( cx, initializer, 0 ) ;
3636 then {
3737 let mut applicability = Applicability :: MaybeIncorrect ;
38+ let span = expr. span. with_hi( arg. span. hi( ) ) ;
3839
3940 let int_name = match ty. map( Ty :: kind) {
4041 // usize or inferred
4142 Some ( ty:: Uint ( UintTy :: Usize ) ) | None => {
42- span_lint_and_then (
43+ span_lint_and_sugg (
4344 cx,
4445 EXPLICIT_COUNTER_LOOP ,
45- expr . span. with_hi ( arg . span . hi ( ) ) ,
46+ span,
4647 & format!( "the variable `{}` is used as a loop counter" , name) ,
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- }
48+ "consider using" ,
49+ format!(
50+ "for ({}, {}) in {}.enumerate()" ,
51+ name,
52+ snippet_with_applicability( cx, pat. span, "item" , & mut applicability) ,
53+ make_iterator_snippet( cx, arg, & mut applicability) ,
54+ ) ,
55+ applicability,
6056 ) ;
6157 return ;
6258 }
@@ -68,11 +64,11 @@ pub(super) fn check<'tcx>(
6864 span_lint_and_then(
6965 cx,
7066 EXPLICIT_COUNTER_LOOP ,
71- expr . span. with_hi ( arg . span . hi ( ) ) ,
67+ span,
7268 & format!( "the variable `{}` is used as a loop counter" , name) ,
7369 |diag| {
7470 diag. span_suggestion(
75- expr . span. with_hi ( arg . span . hi ( ) ) ,
71+ span,
7672 "consider using" ,
7773 format!(
7874 "for ({}, {}) in (0_{}..).zip({})" ,
0 commit comments