don't suggest placing code in block if next token is open-brace

Thanks to the inestimably inimitable Esteban "Estebank" Küber for
pointing this out.

This is relevant to #46836.
This commit is contained in:
Zack M. Davis 2018-03-21 21:54:06 -07:00
parent 4b9b70c394
commit 944c401736
1 changed files with 5 additions and 0 deletions

View File

@ -4486,6 +4486,11 @@ impl<'a> Parser<'a> {
// Which is valid in other languages, but not Rust.
match self.parse_stmt_without_recovery(false) {
Ok(Some(stmt)) => {
if self.look_ahead(1, |t| t == &token::OpenDelim(token::Brace)) {
// if the next token is an open brace (e.g., `if a b {`), the place-
// inside-a-block suggestion would be more likely wrong than right
return Err(e);
}
let mut stmt_span = stmt.span;
// expand the span to include the semicolon, if it exists
if self.eat(&token::Semi) {