summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_builtin_macros/src/standard_library_imports.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_builtin_macros/src/standard_library_imports.rs')
-rw-r--r--compiler/rustc_builtin_macros/src/standard_library_imports.rs19
1 files changed, 10 insertions, 9 deletions
diff --git a/compiler/rustc_builtin_macros/src/standard_library_imports.rs b/compiler/rustc_builtin_macros/src/standard_library_imports.rs
index e67c0dba6..6493c6f13 100644
--- a/compiler/rustc_builtin_macros/src/standard_library_imports.rs
+++ b/compiler/rustc_builtin_macros/src/standard_library_imports.rs
@@ -1,4 +1,4 @@
-use rustc_ast as ast;
+use rustc_ast::{self as ast, attr};
use rustc_expand::base::{ExtCtxt, ResolverExpand};
use rustc_expand::expand::ExpansionConfig;
use rustc_session::Session;
@@ -9,17 +9,19 @@ use rustc_span::DUMMY_SP;
use thin_vec::thin_vec;
pub fn inject(
- mut krate: ast::Crate,
+ krate: &mut ast::Crate,
+ pre_configured_attrs: &[ast::Attribute],
resolver: &mut dyn ResolverExpand,
sess: &Session,
-) -> ast::Crate {
+) -> usize {
+ let orig_num_items = krate.items.len();
let edition = sess.parse_sess.edition;
// the first name in this list is the crate name of the crate with the prelude
- let names: &[Symbol] = if sess.contains_name(&krate.attrs, sym::no_core) {
- return krate;
- } else if sess.contains_name(&krate.attrs, sym::no_std) {
- if sess.contains_name(&krate.attrs, sym::compiler_builtins) {
+ let names: &[Symbol] = if attr::contains_name(pre_configured_attrs, sym::no_core) {
+ return 0;
+ } else if attr::contains_name(pre_configured_attrs, sym::no_std) {
+ if attr::contains_name(pre_configured_attrs, sym::compiler_builtins) {
&[sym::core]
} else {
&[sym::core, sym::compiler_builtins]
@@ -88,6 +90,5 @@ pub fn inject(
);
krate.items.insert(0, use_item);
-
- krate
+ krate.items.len() - orig_num_items
}