From 549bd45e9eb13e501416e17887b65ad4189ebe6b Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Fri, 26 Oct 2018 01:39:47 +0300 Subject: resolve: Support aliasing local crate root in extern prelude --- src/libsyntax/parse/parser.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/libsyntax/parse') 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; -- cgit 1.4.1-3-g733a5