extern crate foobar as foo;
Implements remaining part of RFC #47. Addresses issue #16461. Removed link_attrs from rust.md, they don't appear to be supported by the parser. Changed all the tests to use the new extern crate syntax Change pretty printer to use 'as' syntax
This commit is contained in:
parent
6843d8ccd5
commit
c0e003d5ad
70 changed files with 96 additions and 89 deletions
|
@ -4825,7 +4825,8 @@ impl<'a> Parser<'a> {
|
|||
/// # Example
|
||||
///
|
||||
/// extern crate url;
|
||||
/// extern crate foo = "bar";
|
||||
/// extern crate foo = "bar"; //deprecated
|
||||
/// extern crate "bar" as foo;
|
||||
fn parse_item_extern_crate(&mut self,
|
||||
lo: BytePos,
|
||||
visibility: Visibility,
|
||||
|
@ -4836,6 +4837,8 @@ impl<'a> Parser<'a> {
|
|||
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())
|
||||
|
@ -4843,7 +4846,14 @@ impl<'a> Parser<'a> {
|
|||
|
||||
self.expect(&token::SEMI);
|
||||
(path, the_ident)
|
||||
}
|
||||
},
|
||||
token::LIT_STR(..) | token::LIT_STR_RAW(..) => {
|
||||
let path = self.parse_str();
|
||||
self.expect_keyword(keywords::As);
|
||||
let the_ident = self.parse_ident();
|
||||
self.expect(&token::SEMI);
|
||||
(Some(path), the_ident)
|
||||
},
|
||||
_ => {
|
||||
let span = self.span;
|
||||
let token_str = self.this_token_to_string();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue