diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-06-27 17:48:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-27 17:48:44 +0200 |
| commit | 9f2c21c11f0cf8762b66675024c9d1041dbcc219 (patch) | |
| tree | 8f17cd3b7dad4fd945dd55272e47f0873d38d0e1 /compiler/rustc_parse/src/parser/expr.rs | |
| parent | f42f19b6d3d785a74dbe57aa395b6c288437dd51 (diff) | |
| parent | 0220c0b765e92dcb3565f0a8bd3c422afbd77f88 (diff) | |
| download | rust-9f2c21c11f0cf8762b66675024c9d1041dbcc219.tar.gz rust-9f2c21c11f0cf8762b66675024c9d1041dbcc219.zip | |
Rollup merge of #112518 - chenyukang:yukang-fix-112458, r=davidtwco
Detect actual span for getting unexpected token from parsing macros Fixes #112458
Diffstat (limited to 'compiler/rustc_parse/src/parser/expr.rs')
| -rw-r--r-- | compiler/rustc_parse/src/parser/expr.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs index 88c6cc1ae70..5f2f86e8113 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. |
