Auto merge of #57208 - estebank:issue-57198, r=petrochenkov

Do not complain about missing crate named as a keyword

Fix #57198.
This commit is contained in:
bors 2018-12-31 08:06:15 +00:00
commit aeed63bf38
5 changed files with 30 additions and 2 deletions

View File

@ -3925,8 +3925,11 @@ impl<'a> Resolver<'a> {
});
if let Some(candidate) = candidates.get(0) {
format!("did you mean `{}`?", candidate.path)
} else {
} else if !ident.is_reserved() {
format!("maybe a missing `extern crate {};`?", ident)
} else {
// the parser will already have complained about the keyword being used
return PathResult::NonModule(err_path_resolution());
}
} else if i == 0 {
format!("use of undeclared type or module `{}`", ident)

View File

@ -929,7 +929,7 @@ impl<'a> Resolver<'a> {
let def = path_res.base_def();
check_consistency(self, &path, path_span, kind, initial_def, def);
}
path_res @ PathResult::NonModule(..) | path_res @ PathResult::Failed(..) => {
path_res @ PathResult::NonModule(..) | path_res @ PathResult::Failed(..) => {
let (span, msg) = if let PathResult::Failed(span, msg, ..) = path_res {
(span, msg)
} else {

View File

@ -0,0 +1,9 @@
// run-pass
mod m {
pub fn r#for() {}
}
fn main() {
m::r#for();
}

View File

@ -0,0 +1,8 @@
mod m {
pub fn r#for() {}
}
fn main() {
m::for();
//~^ ERROR expected identifier, found keyword `for`
}

View File

@ -0,0 +1,8 @@
error: expected identifier, found keyword `for`
--> $DIR/issue-57198.rs:6:8
|
LL | m::for();
| ^^^ expected identifier, found keyword
error: aborting due to previous error