@@ -2,13 +2,13 @@ use std::ops::ControlFlow;
22
33use clippy_utils:: diagnostics:: span_lint_and_then;
44use clippy_utils:: res:: { MaybeDef , MaybeResPath } ;
5- use clippy_utils:: sym;
5+ use clippy_utils:: { is_clippy_no_dead_code_warning_attr , sym} ;
66use clippy_utils:: visitors:: { Visitable , for_each_expr} ;
77use rustc_ast:: LitKind ;
88use rustc_data_structures:: fx:: FxHashSet ;
99use rustc_hir:: def:: { DefKind , Res } ;
10- use rustc_hir:: { Block , Expr , ExprKind , Impl , Item , ItemKind , LangItem , Node , QPath , TyKind , VariantData } ;
11- use rustc_lint:: { LateContext , LateLintPass } ;
10+ use rustc_hir:: { Block , Expr , ExprKind , Impl , Item , ItemKind , Node , QPath , TyKind , VariantData } ;
11+ use rustc_lint:: { LateContext , LateLintPass , LintContext } ;
1212use rustc_middle:: ty:: { Ty , TypeckResults } ;
1313use rustc_session:: declare_lint_pass;
1414use rustc_span:: { Span , Symbol } ;
@@ -184,7 +184,8 @@ fn check_struct<'tcx>(
184184 . iter ( )
185185 . filter_map ( |field| {
186186 if field_accesses. contains ( & field. ident . name )
187- || field. ty . basic_res ( ) . is_lang_item ( cx, LangItem :: PhantomData )
187+ // We exclude certain types (e.g. PhantomData, PhantomPinned) marked with
188+ || is_clippy_no_dead_code_warning_attr ( cx. sess ( ) , cx. tcx , field. ty . basic_res ( ) )
188189 {
189190 None
190191 } else {
0 commit comments