diff options
| author | bors <bors@rust-lang.org> | 2023-06-27 17:54:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-06-27 17:54:24 +0000 |
| commit | 5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3 (patch) | |
| tree | d274cb5b7df7d9f2ac3427400a74daa26ffe9c5a /compiler/rustc_parse/src/parser/expr.rs | |
| parent | 3c554f5cb4965a08f2a2b45ab4bba321a5f249fa (diff) | |
| parent | adc3ae24d6a53466a594bf181c6fc135bd24d1c8 (diff) | |
| download | rust-5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3.tar.gz rust-5ea66686467d3ec5f8c81570e7f0f16ad8dd8cc3.zip | |
Auto merge of #113102 - matthiaskrgr:rollup-wpkbsw1, r=matthiaskrgr
Rollup of 7 pull requests Successful merges: - #112518 (Detect actual span for getting unexpected token from parsing macros) - #112978 (Add suggestion for bad block fragment error) - #113068 (bootstrap: rename 'user' profile to 'dist') - #113079 (Use `CoverageKind::as_operand_id` instead of manually reimplementing it) - #113089 (Export AnalysisResults trait in rustc_mir_dataflow) - #113093 (`thir`: Add `Become` expression kind) - #113096 (Remove unused struct and tweak format macro uses) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_parse/src/parser/expr.rs')
| -rw-r--r-- | compiler/rustc_parse/src/parser/expr.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs index 88c6cc1ae70..7ede4fbc3d9 100644 --- a/compiler/rustc_parse/src/parser/expr.rs +++ b/compiler/rustc_parse/src/parser/expr.rs @@ -1013,9 +1013,15 @@ impl<'a> Parser<'a> { } fn error_unexpected_after_dot(&self) { - // FIXME Could factor this out into non_fatal_unexpected or something. let actual = pprust::token_to_string(&self.token); - self.sess.emit_err(errors::UnexpectedTokenAfterDot { span: self.token.span, actual }); + let span = self.token.span; + let sm = self.sess.source_map(); + let (span, actual) = match (&self.token.kind, self.subparser_name) { + (token::Eof, Some(_)) if let Ok(actual) = sm.span_to_snippet(sm.next_point(span)) => + (span.shrink_to_hi(), actual.into()), + _ => (span, actual), + }; + self.sess.emit_err(errors::UnexpectedTokenAfterDot { span, actual }); } // We need an identifier or integer, but the next token is a float. @@ -2186,6 +2192,10 @@ impl<'a> Parser<'a> { self.sess.emit_err(errors::InvalidBlockMacroSegment { span: self.token.span, context: lo.to(self.token.span), + wrap: errors::WrapInExplicitBlock { + lo: self.token.span.shrink_to_lo(), + hi: self.token.span.shrink_to_hi(), + }, }); } |
