From 944c4017365e0974e7b8c5b52ce2d267e3ab3e4c Mon Sep 17 00:00:00 2001 From: "Zack M. Davis" Date: Wed, 21 Mar 2018 21:54:06 -0700 Subject: don't suggest placing code in block if next token is open-brace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to the inestimably inimitable Esteban "Estebank" Küber for pointing this out. This is relevant to #46836. --- src/libsyntax/parse/parser.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index e6da5bcaa3a..05c6c1352b2 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -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) { -- cgit 1.4.1-3-g733a5