Skip to content

Commit 2df25ad

Browse files
committed
Combine std_inject::{no_core, no_std} into std_inject::injected_crate_name.
1 parent 75c155b commit 2df25ad

File tree

4 files changed

+15
-25
lines changed

4 files changed

+15
-25
lines changed

src/librustc/hir/lowering.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,7 @@ pub fn lower_crate(sess: &Session,
9595
let _ignore = sess.dep_graph.in_ignore();
9696

9797
LoweringContext {
98-
crate_root: if std_inject::no_core(krate) {
99-
None
100-
} else if std_inject::no_std(krate) {
101-
Some("core")
102-
} else {
103-
Some("std")
104-
},
98+
crate_root: std_inject::injected_crate_name(krate),
10599
sess: sess,
106100
parent_def: None,
107101
resolver: resolver,

src/libsyntax/ext/base.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -739,13 +739,7 @@ impl<'a> ExtCtxt<'a> {
739739
}
740740

741741
pub fn initialize(&mut self, user_exts: Vec<NamedSyntaxExtension>, krate: &ast::Crate) {
742-
if std_inject::no_core(&krate) {
743-
self.crate_root = None;
744-
} else if std_inject::no_std(&krate) {
745-
self.crate_root = Some("core");
746-
} else {
747-
self.crate_root = Some("std");
748-
}
742+
self.crate_root = std_inject::injected_crate_name(krate);
749743

750744
for (name, extension) in user_exts {
751745
let ident = ast::Ident::with_empty_ctxt(name);

src/libsyntax/print/pprust.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ pub fn print_crate<'a>(cm: &'a CodeMap,
112112
out,
113113
ann,
114114
is_expanded);
115-
if is_expanded && !std_inject::no_std(krate) {
115+
if is_expanded && !std_inject::injected_crate_name(krate).is_none() {
116116
// We need to print `#![no_std]` (and its feature gate) so that
117117
// compiling pretty-printed source won't inject libstd again.
118118
// However we don't want these attributes in the AST because

src/libsyntax/std_inject.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,25 @@ fn ignored_span(sess: &ParseSess, sp: Span) -> Span {
3434
return sp;
3535
}
3636

37-
pub fn no_core(krate: &ast::Crate) -> bool {
38-
attr::contains_name(&krate.attrs, "no_core")
39-
}
40-
41-
pub fn no_std(krate: &ast::Crate) -> bool {
42-
attr::contains_name(&krate.attrs, "no_std") || no_core(krate)
37+
pub fn injected_crate_name(krate: &ast::Crate) -> Option<&'static str> {
38+
if attr::contains_name(&krate.attrs, "no_core") {
39+
None
40+
} else if attr::contains_name(&krate.attrs, "no_std") {
41+
Some("core")
42+
} else {
43+
Some("std")
44+
}
4345
}
4446

4547
pub fn maybe_inject_crates_ref(sess: &ParseSess,
4648
mut krate: ast::Crate,
4749
alt_std_name: Option<String>)
4850
-> ast::Crate {
49-
if no_core(&krate) {
50-
return krate;
51-
}
51+
let name = match injected_crate_name(&krate) {
52+
Some(name) => name,
53+
None => return krate,
54+
};
5255

53-
let name = if no_std(&krate) { "core" } else { "std" };
5456
let crate_name = token::intern(&alt_std_name.unwrap_or(name.to_string()));
5557

5658
krate.module.items.insert(0, P(ast::Item {

0 commit comments

Comments
 (0)