rustc: Add support for extern crate foo as bar
The compiler will now issue a warning for crates that have syntax of the form `extern crate "foo" as bar`, but it will still continue to accept this syntax. Additionally, the string `foo-bar` will match the crate name `foo_bar` to assist in the transition period as well. This patch will land hopefully in tandem with a Cargo patch that will start translating all crate names to have underscores instead of hyphens. cc #23533
This commit is contained in:
@@ -54,8 +54,8 @@ impl fold::Folder for StandardLibraryInjector {
|
||||
|
||||
// The name to use in `extern crate "name" as std;`
|
||||
let actual_crate_name = match self.alt_std_name {
|
||||
Some(ref s) => token::intern_and_get_ident(&s[..]),
|
||||
None => token::intern_and_get_ident("std"),
|
||||
Some(ref s) => token::intern(&s),
|
||||
None => token::intern("std"),
|
||||
};
|
||||
|
||||
krate.module.items.insert(0, P(ast::Item {
|
||||
@@ -64,7 +64,7 @@ impl fold::Folder for StandardLibraryInjector {
|
||||
attrs: vec!(
|
||||
attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(
|
||||
InternedString::new("macro_use")))),
|
||||
node: ast::ItemExternCrate(Some((actual_crate_name, ast::CookedStr))),
|
||||
node: ast::ItemExternCrate(Some(actual_crate_name)),
|
||||
vis: ast::Inherited,
|
||||
span: DUMMY_SP
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user