@@ -5,6 +5,7 @@ use rustc_hir::def_id::DefId;
55use rustc_hir:: { self as hir, Attribute , find_attr} ;
66use rustc_lint:: { LateContext , LateLintPass , LintContext } ;
77use rustc_middle:: ty:: AssocContainer ;
8+ use rustc_session:: config:: CrateType ;
89use rustc_session:: declare_lint_pass;
910use rustc_span:: Span ;
1011
@@ -82,15 +83,6 @@ fn check_missing_inline_attrs(
8283 }
8384}
8485
85- fn is_executable_or_proc_macro ( cx : & LateContext < ' _ > ) -> bool {
86- use rustc_session:: config:: CrateType ;
87-
88- cx. tcx
89- . crate_types ( )
90- . iter ( )
91- . any ( |t : & CrateType | matches ! ( t, CrateType :: Executable | CrateType :: ProcMacro ) )
92- }
93-
9486declare_lint_pass ! ( MissingInline => [ MISSING_INLINE_IN_PUBLIC_ITEMS ] ) ;
9587
9688impl < ' tcx > LateLintPass < ' tcx > for MissingInline {
@@ -99,7 +91,11 @@ impl<'tcx> LateLintPass<'tcx> for MissingInline {
9991 return ;
10092 }
10193
102- if is_executable_or_proc_macro ( cx)
94+ if cx
95+ . tcx
96+ . crate_types ( )
97+ . iter ( )
98+ . any ( |t : & CrateType | matches ! ( t, CrateType :: ProcMacro ) )
10399 // Allow the lint if it is expected, when building with `--test`
104100 && !( cx. sess ( ) . is_test_crate ( ) && fulfill_or_allowed ( cx, MISSING_INLINE_IN_PUBLIC_ITEMS , [ it. hir_id ( ) ] ) )
105101 {
@@ -157,7 +153,13 @@ impl<'tcx> LateLintPass<'tcx> for MissingInline {
157153 }
158154
159155 fn check_impl_item ( & mut self , cx : & LateContext < ' tcx > , impl_item : & ' tcx hir:: ImplItem < ' _ > ) {
160- if impl_item. span . in_external_macro ( cx. sess ( ) . source_map ( ) ) || is_executable_or_proc_macro ( cx) {
156+ if impl_item. span . in_external_macro ( cx. sess ( ) . source_map ( ) )
157+ || cx
158+ . tcx
159+ . crate_types ( )
160+ . iter ( )
161+ . any ( |t : & CrateType | matches ! ( t, CrateType :: ProcMacro ) )
162+ {
161163 return ;
162164 }
163165
0 commit comments