resolve: Support aliasing local crate root in extern prelude

This commit is contained in:
Vadim Petrochenkov 2018-10-26 01:39:47 +03:00
parent d3ed34824c
commit 549bd45e9e
9 changed files with 89 additions and 10 deletions

View file

@ -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;