diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-03-09 18:51:48 +0300 | 
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-03-17 22:12:21 +0300 | 
| commit | c6c6cf9515b330551b04f36025bc72e1288a96d9 (patch) | |
| tree | 226aa15ee6064f21ffa27f206ff54081829d25d5 /src/libsyntax/std_inject.rs | |
| parent | 61b6bf54fdf56195baf9a8ee7383551b0d468c81 (diff) | |
| download | rust-c6c6cf9515b330551b04f36025bc72e1288a96d9.tar.gz rust-c6c6cf9515b330551b04f36025bc72e1288a96d9.zip | |
AST/HIR: Clarify what the optional name in extern crate items mean
Diffstat (limited to 'src/libsyntax/std_inject.rs')
| -rw-r--r-- | src/libsyntax/std_inject.rs | 6 | 
1 files changed, 2 insertions, 4 deletions
| diff --git a/src/libsyntax/std_inject.rs b/src/libsyntax/std_inject.rs index da24107f4c3..59425929f7e 100644 --- a/src/libsyntax/std_inject.rs +++ b/src/libsyntax/std_inject.rs @@ -43,7 +43,7 @@ thread_local! { static INJECTED_CRATE_NAME: Cell<Option<&'static str>> = Cell::new(None); } -pub fn maybe_inject_crates_ref(mut krate: ast::Crate, alt_std_name: Option<String>) -> ast::Crate { +pub fn maybe_inject_crates_ref(mut krate: ast::Crate, alt_std_name: Option<&str>) -> ast::Crate { let name = if attr::contains_name(&krate.attrs, "no_core") { return krate; } else if attr::contains_name(&krate.attrs, "no_std") { @@ -54,14 +54,12 @@ pub fn maybe_inject_crates_ref(mut krate: ast::Crate, alt_std_name: Option<Strin INJECTED_CRATE_NAME.with(|opt_name| opt_name.set(Some(name))); - let crate_name = Symbol::intern(&alt_std_name.unwrap_or_else(|| name.to_string())); - krate.module.items.insert(0, P(ast::Item { attrs: vec![attr::mk_attr_outer(DUMMY_SP, attr::mk_attr_id(), attr::mk_word_item(Symbol::intern("macro_use")))], vis: dummy_spanned(ast::VisibilityKind::Inherited), - node: ast::ItemKind::ExternCrate(Some(crate_name)), + node: ast::ItemKind::ExternCrate(alt_std_name.map(Symbol::intern)), ident: ast::Ident::from_str(name), id: ast::DUMMY_NODE_ID, span: DUMMY_SP, | 
