@@ -70,16 +70,7 @@ impl LateLintPass<'_> for ManualIlog2 {
70
70
return ;
71
71
} ;
72
72
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) ;
83
74
}
84
75
}
85
76
@@ -90,17 +81,22 @@ impl LateLintPass<'_> for ManualIlog2 {
90
81
&& let LitKind :: Int ( Pu128 ( 2 ) , _) = lit. node
91
82
&& cx. typeck_results ( ) . expr_ty ( reciever) . is_integral ( )
92
83
{
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) ;
102
85
}
103
86
}
104
87
105
88
extract_msrv_attr ! ( LateContext ) ;
106
89
}
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