// except according to those terms.
#[cfg(rustdoc)]
-extern crate this = "rustdoc";
+extern crate "rustdoc" as this;
#[cfg(rustc)]
-extern crate this = "rustc";
+extern crate "rustc" as this;
fn main() { this::main() }
#![deny(missing_doc)]
#[cfg(test)]
-extern crate stdtest = "test";
+extern crate "test" as stdtest;
#[cfg(test)]
extern crate rand;
impl<'a> fold::Folder for StandardLibraryInjector<'a> {
fn fold_crate(&mut self, mut krate: ast::Crate) -> ast::Crate {
- // The name to use in `extern crate std = "name";`
+ // The name to use in `extern crate "name" as std;`
let actual_crate_name = match self.sess.opts.alt_std_name {
Some(ref s) => token::intern_and_get_ident(s.as_slice()),
None => token::intern_and_get_ident("std"),
extern crate getopts;
extern crate graphviz;
extern crate libc;
-extern crate llvm = "rustc_llvm";
-extern crate rustc_back = "rustc_back";
+extern crate "rustc_llvm" as llvm;
+extern crate "rustc_back" as rustc_back;
extern crate serialize;
extern crate rbml;
extern crate time;
extern crate rustc;
extern crate serialize;
extern crate syntax;
-extern crate testing = "test";
+extern crate "test" as testing;
extern crate time;
#[phase(plugin, link)] extern crate log;
extern crate libc;
extern crate collections;
-#[cfg(test)] extern crate realrustrt = "rustrt";
+#[cfg(test)] extern crate "rustrt" as realrustrt;
#[cfg(test)] extern crate test;
#[cfg(test)] extern crate native;
#[cfg(test)] extern crate green;
#[cfg(test)] extern crate debug;
-#[cfg(test)] extern crate realrustuv = "rustuv";
+#[cfg(test)] extern crate "rustuv" as realrustuv;
extern crate libc;
extern crate alloc;
extern crate alloc;
extern crate unicode;
extern crate core;
-extern crate core_collections = "collections";
-extern crate core_rand = "rand";
-extern crate core_sync = "sync";
+extern crate "collections" as core_collections;
+extern crate "rand" as core_rand;
+extern crate "sync" as core_sync;
extern crate libc;
extern crate rustrt;
// Make std testable by not duplicating lang items. See #2912
-#[cfg(test)] extern crate realstd = "std";
+#[cfg(test)] extern crate "std" as realstd;
#[cfg(test)] pub use realstd::kinds;
#[cfg(test)] pub use realstd::ops;
#[cfg(test)] pub use realstd::cmp;
token::IDENT(..) => {
let the_ident = self.parse_ident();
self.expect_one_of(&[], &[token::EQ, token::SEMI]);
- // NOTE - #16689 change this to a warning once
- // the 'as' support is in stage0
let path = if self.token == token::EQ {
self.bump();
- Some(self.parse_str())
+ let path = self.parse_str();
+ let span = self.span;
+ self.span_warn(span,
+ format!("this extern crate syntax is deprecated. \
+ Use: extern create \"{}\" as {};",
+ the_ident.as_str(), path.ref0().get() ).as_slice()
+ );
+ Some(path)
} else {None};
self.expect(&token::SEMI);
// aux-build:issue-16725.rs
-extern crate foo = "issue-16725";
+extern crate "issue-16725" as foo;
fn main() {
unsafe { foo::bar(); }
// Check explicit region bounds on methods in the cross crate case.
-extern crate lib = "regions-bounded-method-type-parameters-cross-crate-lib";
+extern crate "regions-bounded-method-type-parameters-cross-crate-lib" as lib;
use lib::Inv;
use lib::MaybeOwned;
// aux-build:issue-15562.rs
-extern crate i = "issue-15562";
+extern crate "issue-15562" as i;
pub fn main() {
extern {
// aux-build:issue-16643.rs
-extern crate i = "issue-16643";
+extern crate "issue-16643" as i;
pub fn main() {
i::TreeBuilder::<uint>.process_token();