@@ -5,8 +5,9 @@ use clippy_utils::source::snippet;
5
5
use clippy_utils:: sugg:: Sugg ;
6
6
use clippy_utils:: ty:: { get_discriminant_value, is_isize_or_usize} ;
7
7
use rustc_errors:: { Applicability , Diag , SuggestionStyle } ;
8
+ use rustc_hir as hir;
8
9
use rustc_hir:: def:: { DefKind , Res } ;
9
- use rustc_hir:: { BinOpKind , Expr , ExprKind } ;
10
+ use rustc_hir:: { BinOpKind , Expr , ExprKind , QPath } ;
10
11
use rustc_lint:: LateContext ;
11
12
use rustc_middle:: ty:: { self , FloatTy , Ty } ;
12
13
use rustc_span:: symbol:: sym;
@@ -80,7 +81,16 @@ fn apply_reductions(cx: &LateContext<'_>, nbits: u64, expr: &Expr<'_>, signed: b
80
81
nbits
81
82
}
82
83
} ,
83
- ExprKind :: Path ( ref _qpath) => get_constant_bits ( cx, expr) . unwrap_or ( nbits) ,
84
+ ExprKind :: Path ( QPath :: Resolved (
85
+ None ,
86
+ hir:: Path {
87
+ res : Res :: Def ( DefKind :: Const | DefKind :: AssocConst , _id) ,
88
+ ..
89
+ } ,
90
+ ) ) => {
91
+ // `constant()` already checks if a const item is based on `cfg!`.
92
+ get_constant_bits ( cx, expr) . unwrap_or ( nbits)
93
+ } ,
84
94
// mem::size_of::<T>();
85
95
ExprKind :: Call ( func, [ ] ) => {
86
96
if let ExprKind :: Path ( ref func_qpath) = func. kind
0 commit comments