diff options
| author | Samuel Moelius <sam.moelius@trailofbits.com> | 2021-09-26 20:50:26 +0000 |
|---|---|---|
| committer | Samuel Moelius <sam.moelius@trailofbits.com> | 2021-09-26 21:50:50 +0000 |
| commit | 1e15bbe55214e5b9c56fae5809d387a12c98fd6e (patch) | |
| tree | 8d43833747d8d1a32f03feb97ac0a3b4eb69eade /compiler/rustc_interface/src | |
| parent | 551220c48dccc839a00b490835b3962b1a838c82 (diff) | |
| download | rust-1e15bbe55214e5b9c56fae5809d387a12c98fd6e.tar.gz rust-1e15bbe55214e5b9c56fae5809d387a12c98fd6e.zip | |
Pass real crate-level attributes to `pre_expansion_lint`
Diffstat (limited to 'compiler/rustc_interface/src')
| -rw-r--r-- | compiler/rustc_interface/src/passes.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/rustc_interface/src/passes.rs b/compiler/rustc_interface/src/passes.rs index cb7529b527e..2b84ee395e9 100644 --- a/compiler/rustc_interface/src/passes.rs +++ b/compiler/rustc_interface/src/passes.rs @@ -240,6 +240,7 @@ fn pre_expansion_lint( sess: &Session, lint_store: &LintStore, krate: &ast::Crate, + crate_attrs: &[ast::Attribute], crate_name: &str, ) { sess.prof.generic_activity_with_arg("pre_AST_expansion_lint_checks", crate_name).run(|| { @@ -247,6 +248,7 @@ fn pre_expansion_lint( sess, lint_store, &krate, + crate_attrs, true, None, rustc_lint::BuiltinCombinedPreExpansionLintPass::new(), @@ -266,7 +268,7 @@ pub fn configure_and_expand( resolver: &mut Resolver<'_>, ) -> Result<ast::Crate> { tracing::trace!("configure_and_expand"); - pre_expansion_lint(sess, lint_store, &krate, crate_name); + pre_expansion_lint(sess, lint_store, &krate, &krate.attrs, crate_name); rustc_builtin_macros::register_builtin_macros(resolver); krate = sess.time("crate_injection", || { @@ -323,9 +325,10 @@ pub fn configure_and_expand( ..rustc_expand::expand::ExpansionConfig::default(crate_name.to_string()) }; + let crate_attrs = krate.attrs.clone(); let extern_mod_loaded = |ident: Ident, attrs, items, span| { let krate = ast::Crate { attrs, items, span }; - pre_expansion_lint(sess, lint_store, &krate, &ident.name.as_str()); + pre_expansion_lint(sess, lint_store, &krate, &crate_attrs, &ident.name.as_str()); (krate.attrs, krate.items) }; let mut ecx = ExtCtxt::new(&sess, cfg, resolver, Some(&extern_mod_loaded)); @@ -469,6 +472,7 @@ pub fn lower_to_hir<'res, 'tcx>( sess, lint_store, &krate, + &krate.attrs, false, Some(std::mem::take(resolver.lint_buffer())), rustc_lint::BuiltinCombinedEarlyLintPass::new(), |
