diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-10-31 12:55:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-31 12:55:09 +0100 |
| commit | 7035c3d7182562824fd265b8afb7f9db55c7a03f (patch) | |
| tree | 7d2ca5a9cde30018e892716ba4c2c48f4f1564df /compiler/rustc_parse/src/parser | |
| parent | d0833c4b667561b68fc06b0a0ae5932438028ecb (diff) | |
| parent | 50ca5ef07f893d5bd797c2b35f51f0ed301605c0 (diff) | |
| download | rust-7035c3d7182562824fd265b8afb7f9db55c7a03f.tar.gz rust-7035c3d7182562824fd265b8afb7f9db55c7a03f.zip | |
Rollup merge of #116712 - estebank:issue-116252, r=petrochenkov
When encountering unclosed delimiters during lexing, check for diff markers Fix #116252.
Diffstat (limited to 'compiler/rustc_parse/src/parser')
| -rw-r--r-- | compiler/rustc_parse/src/parser/diagnostics.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs index 7b5bb319ed8..2a8eb6edd23 100644 --- a/compiler/rustc_parse/src/parser/diagnostics.rs +++ b/compiler/rustc_parse/src/parser/diagnostics.rs @@ -2808,8 +2808,15 @@ impl<'a> Parser<'a> { } pub fn recover_diff_marker(&mut self) { + if let Err(mut err) = self.err_diff_marker() { + err.emit(); + FatalError.raise(); + } + } + + pub fn err_diff_marker(&mut self) -> PResult<'a, ()> { let Some(start) = self.diff_marker(&TokenKind::BinOp(token::Shl), &TokenKind::Lt) else { - return; + return Ok(()); }; let mut spans = Vec::with_capacity(3); spans.push(start); @@ -2856,8 +2863,7 @@ impl<'a> Parser<'a> { "for an explanation on these markers from the `git` documentation, visit \ <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>", ); - err.emit(); - FatalError.raise() + Err(err) } /// Parse and throw away a parenthesized comma separated |
