@@ -70,16 +70,7 @@ impl LateLintPass<'_> for ManualIlog2 {
7070 return ;
7171 } ;
7272 if val == u128:: from ( bit_width) - 1 {
73- let sugg = snippet_with_applicability ( cx, reciever. span , ".." , & mut applicability) ;
74- span_lint_and_sugg (
75- cx,
76- MANUAL_ILOG2 ,
77- expr. span ,
78- "manually reimplementing `ilog2`" ,
79- "consider using .ilog2()" ,
80- format ! ( "{sugg}.ilog2()" ) ,
81- applicability,
82- ) ;
73+ suggest_change ( cx, reciever, expr, & mut applicability) ;
8374 }
8475 }
8576
@@ -90,17 +81,22 @@ impl LateLintPass<'_> for ManualIlog2 {
9081 && let LitKind :: Int ( Pu128 ( 2 ) , _) = lit. node
9182 && cx. typeck_results ( ) . expr_ty ( reciever) . is_integral ( )
9283 {
93- span_lint_and_sugg (
94- cx,
95- MANUAL_ILOG2 ,
96- expr. span ,
97- "manually reimplementing `ilog2`" ,
98- "consider using .ilog2()" ,
99- format ! ( "{}.ilog2()" , snippet_with_applicability( cx, reciever. span, ".." , & mut applicability) ) ,
100- applicability,
101- ) ;
84+ suggest_change ( cx, reciever, expr, & mut applicability) ;
10285 }
10386 }
10487
10588 extract_msrv_attr ! ( LateContext ) ;
10689}
90+
91+ fn suggest_change ( cx : & LateContext < ' _ > , reciever : & Expr < ' _ > , full_expr : & Expr < ' _ > , applicability : & mut Applicability ) {
92+ let sugg = snippet_with_applicability ( cx, reciever. span , ".." , applicability) ;
93+ span_lint_and_sugg (
94+ cx,
95+ MANUAL_ILOG2 ,
96+ full_expr. span ,
97+ "manually reimplementing `ilog2`" ,
98+ "consider using .ilog2()" ,
99+ format ! ( "{sugg}.ilog2()" ) ,
100+ * applicability,
101+ ) ;
102+ }
0 commit comments