about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2018-10-26 01:39:47 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2018-12-01 14:38:47 +0300
commit549bd45e9eb13e501416e17887b65ad4189ebe6b (patch)
tree15de266b8c52d7b39700d344996438d3433dc66b /src/libsyntax/parse
parentd3ed34824c31f303b98855fee6fc9213dff1f295 (diff)
downloadrust-549bd45e9eb13e501416e17887b65ad4189ebe6b.tar.gz
rust-549bd45e9eb13e501416e17887b65ad4189ebe6b.zip
resolve: Support aliasing local crate root in extern prelude
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/parser.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index f13bb7df0b4..33715f206de 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -6783,7 +6783,11 @@ impl<'a> Parser<'a> {
         let error_msg = "crate name using dashes are not valid in `extern crate` statements";
         let suggestion_msg = "if the original crate name uses dashes you need to use underscores \
                               in the code";
-        let mut ident = self.parse_ident()?;
+        let mut ident = if self.token.is_keyword(keywords::SelfValue) {
+            self.parse_path_segment_ident()
+        } else {
+            self.parse_ident()
+        }?;
         let mut idents = vec![];
         let mut replacement = vec![];
         let mut fixed_crate_name = false;