@@ -240,13 +240,15 @@ fn pre_expansion_lint(
240240 sess : & Session ,
241241 lint_store : & LintStore ,
242242 krate : & ast:: Crate ,
243+ crate_attrs : & [ ast:: Attribute ] ,
243244 crate_name : & str ,
244245) {
245246 sess. prof . generic_activity_with_arg ( "pre_AST_expansion_lint_checks" , crate_name) . run ( || {
246247 rustc_lint:: check_ast_crate (
247248 sess,
248249 lint_store,
249250 & krate,
251+ crate_attrs,
250252 true ,
251253 None ,
252254 rustc_lint:: BuiltinCombinedPreExpansionLintPass :: new ( ) ,
@@ -266,7 +268,7 @@ pub fn configure_and_expand(
266268 resolver : & mut Resolver < ' _ > ,
267269) -> Result < ast:: Crate > {
268270 tracing:: trace!( "configure_and_expand" ) ;
269- pre_expansion_lint ( sess, lint_store, & krate, crate_name) ;
271+ pre_expansion_lint ( sess, lint_store, & krate, & krate . attrs , crate_name) ;
270272 rustc_builtin_macros:: register_builtin_macros ( resolver) ;
271273
272274 krate = sess. time ( "crate_injection" , || {
@@ -323,9 +325,10 @@ pub fn configure_and_expand(
323325 ..rustc_expand:: expand:: ExpansionConfig :: default ( crate_name. to_string ( ) )
324326 } ;
325327
328+ let crate_attrs = krate. attrs . clone ( ) ;
326329 let extern_mod_loaded = |ident : Ident , attrs, items, span| {
327330 let krate = ast:: Crate { attrs, items, span } ;
328- pre_expansion_lint ( sess, lint_store, & krate, & ident. name . as_str ( ) ) ;
331+ pre_expansion_lint ( sess, lint_store, & krate, & crate_attrs , & ident. name . as_str ( ) ) ;
329332 ( krate. attrs , krate. items )
330333 } ;
331334 let mut ecx = ExtCtxt :: new ( & sess, cfg, resolver, Some ( & extern_mod_loaded) ) ;
@@ -469,6 +472,7 @@ pub fn lower_to_hir<'res, 'tcx>(
469472 sess,
470473 lint_store,
471474 & krate,
475+ & krate. attrs ,
472476 false ,
473477 Some ( std:: mem:: take ( resolver. lint_buffer ( ) ) ) ,
474478 rustc_lint:: BuiltinCombinedEarlyLintPass :: new ( ) ,
0 commit comments