Skip to content

Commit

Permalink
Extract suggestions to seperate function
Browse files Browse the repository at this point in the history
  • Loading branch information
Sour1emon committed Sep 5, 2024
1 parent 7d6e58e commit 839539b
Showing 1 changed file with 15 additions and 19 deletions.
34 changes: 15 additions & 19 deletions clippy_lints/src/manual_ilog2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,16 +70,7 @@ impl LateLintPass<'_> for ManualIlog2 {
return;
};
if val == u128::from(bit_width) - 1 {
let sugg = snippet_with_applicability(cx, reciever.span, "..", &mut applicability);
span_lint_and_sugg(
cx,
MANUAL_ILOG2,
expr.span,
"manually reimplementing `ilog2`",
"consider using .ilog2()",
format!("{sugg}.ilog2()"),
applicability,
);
suggest_change(cx, reciever, expr, &mut applicability);
}
}

Expand All @@ -90,17 +81,22 @@ impl LateLintPass<'_> for ManualIlog2 {
&& let LitKind::Int(Pu128(2), _) = lit.node
&& cx.typeck_results().expr_ty(reciever).is_integral()
{
span_lint_and_sugg(
cx,
MANUAL_ILOG2,
expr.span,
"manually reimplementing `ilog2`",
"consider using .ilog2()",
format!("{}.ilog2()", snippet_with_applicability(cx, reciever.span, "..", &mut applicability)),
applicability,
);
suggest_change(cx, reciever, expr, &mut applicability);
}
}

extract_msrv_attr!(LateContext);
}

fn suggest_change(cx: &LateContext<'_>, reciever: &Expr<'_>, full_expr: &Expr<'_>, applicability: &mut Applicability) {
let sugg = snippet_with_applicability(cx, reciever.span, "..", applicability);
span_lint_and_sugg(
cx,
MANUAL_ILOG2,
full_expr.span,
"manually reimplementing `ilog2`",
"consider using .ilog2()",
format!("{sugg}.ilog2()"),
*applicability,
);
}

0 comments on commit 839539b

Please sign in to comment.