change applicability type to MaybeIncorrect

This commit is contained in:
kyoto7250 2022-07-10 23:01:13 +09:00
parent 4d1b976b1d
commit 25fe4193ec

View File

@ -1,5 +1,5 @@
use super::{make_iterator_snippet, IncrementVisitor, InitializeVisitor, EXPLICIT_COUNTER_LOOP}; use super::{make_iterator_snippet, IncrementVisitor, InitializeVisitor, EXPLICIT_COUNTER_LOOP};
use clippy_utils::diagnostics::{span_lint_and_sugg, span_lint_and_then}; use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::source::snippet_with_applicability; use clippy_utils::source::snippet_with_applicability;
use clippy_utils::{get_enclosing_block, is_integer_const}; use clippy_utils::{get_enclosing_block, is_integer_const};
use if_chain::if_chain; use if_chain::if_chain;
@ -34,24 +34,29 @@ pub(super) fn check<'tcx>(
if let Some((name, ty, initializer)) = initialize_visitor.get_result(); if let Some((name, ty, initializer)) = initialize_visitor.get_result();
if is_integer_const(cx, initializer, 0); if is_integer_const(cx, initializer, 0);
then { then {
let mut applicability = Applicability::MachineApplicable; let mut applicability = Applicability::MaybeIncorrect;
let int_name = match ty.map(Ty::kind) { let int_name = match ty.map(Ty::kind) {
// usize or inferred // usize or inferred
Some(ty::Uint(UintTy::Usize)) | None => { Some(ty::Uint(UintTy::Usize)) | None => {
span_lint_and_sugg( span_lint_and_then(
cx, cx,
EXPLICIT_COUNTER_LOOP, EXPLICIT_COUNTER_LOOP,
expr.span.with_hi(arg.span.hi()), expr.span.with_hi(arg.span.hi()),
&format!("the variable `{}` is used as a loop counter", name), &format!("the variable `{}` is used as a loop counter", name),
"consider using", |diag| {
format!( diag.span_suggestion(
"for ({}, {}) in {}.enumerate()", expr.span.with_hi(arg.span.hi()),
name, "consider using",
snippet_with_applicability(cx, pat.span, "item", &mut applicability), format!(
make_iterator_snippet(cx, arg, &mut applicability), "for ({}, {}) in {}.enumerate()",
), name,
applicability, snippet_with_applicability(cx, pat.span, "item", &mut applicability),
make_iterator_snippet(cx, arg, &mut applicability),
),
applicability,
);
}
); );
return; return;
} }