diff options
| author | wickerwaka <martin.donlon@gmail.com> | 2014-08-22 21:02:00 -0700 |
|---|---|---|
| committer | wickerwaka <martin.donlon@gmail.com> | 2014-08-23 12:16:04 -0700 |
| commit | c0e003d5ade810f36b8f4a1bb641b6bb2476b298 (patch) | |
| tree | 1c9b034207960f9d1b08f57cc451308ff322c869 /src/libsyntax/parse | |
| parent | 6843d8ccd562c5c5d45c0bba570908d5aa765610 (diff) | |
| download | rust-c0e003d5ade810f36b8f4a1bb641b6bb2476b298.tar.gz rust-c0e003d5ade810f36b8f4a1bb641b6bb2476b298.zip | |
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
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 9e2829e6380..53fda92ce1b 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -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(); |
