diff options
Diffstat (limited to 'compiler/rustc_parse/src')
| -rw-r--r-- | compiler/rustc_parse/src/parser/diagnostics.rs | 11 | ||||
| -rw-r--r-- | compiler/rustc_parse/src/parser/stmt.rs | 9 |
2 files changed, 16 insertions, 4 deletions
diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs index 273fbea3580..59e0feb67c5 100644 --- a/compiler/rustc_parse/src/parser/diagnostics.rs +++ b/compiler/rustc_parse/src/parser/diagnostics.rs @@ -446,11 +446,13 @@ impl<'a> Parser<'a> { ) .emit(); *self = snapshot; - Ok(self.mk_block( + let mut tail = self.mk_block( vec![self.mk_stmt_err(expr.span)], s, lo.to(self.prev_token.span), - )) + ); + tail.could_be_bare_literal = true; + Ok(tail) } (Err(mut err), Ok(tail)) => { // We have a block tail that contains a somehow valid type ascription expr. @@ -463,7 +465,10 @@ impl<'a> Parser<'a> { self.consume_block(token::Brace, ConsumeClosingDelim::Yes); Err(err) } - (Ok(_), Ok(tail)) => Ok(tail), + (Ok(_), Ok(mut tail)) => { + tail.could_be_bare_literal = true; + Ok(tail) + } }); } None diff --git a/compiler/rustc_parse/src/parser/stmt.rs b/compiler/rustc_parse/src/parser/stmt.rs index 068bd36af55..25dcb4a112d 100644 --- a/compiler/rustc_parse/src/parser/stmt.rs +++ b/compiler/rustc_parse/src/parser/stmt.rs @@ -574,7 +574,14 @@ impl<'a> Parser<'a> { } pub(super) fn mk_block(&self, stmts: Vec<Stmt>, rules: BlockCheckMode, span: Span) -> P<Block> { - P(Block { stmts, id: DUMMY_NODE_ID, rules, span, tokens: None }) + P(Block { + stmts, + id: DUMMY_NODE_ID, + rules, + span, + tokens: None, + could_be_bare_literal: false, + }) } pub(super) fn mk_stmt(&self, span: Span, kind: StmtKind) -> Stmt { |
