diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2024-03-07 15:07:08 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-07 15:07:08 +0100 |
| commit | 9bda4e47c7f12c0aaadfc7bc12cc486c4e456418 (patch) | |
| tree | b76697373b8fbccf3c70765a19b79625a267e5d8 /compiler/rustc_parse/src | |
| parent | 66a062af869a4ae16d6d67a9ef3a0d7a65b48c70 (diff) | |
| parent | 8e45d0fe495358bbb2415f1c0eec92d28b50c743 (diff) | |
| download | rust-9bda4e47c7f12c0aaadfc7bc12cc486c4e456418.tar.gz rust-9bda4e47c7f12c0aaadfc7bc12cc486c4e456418.zip | |
Rollup merge of #122115 - clubby789:cancel-recoverr, r=compiler-errors
Cancel parsing ever made during recovery Fixes #122112 It would be nice if diagnostics from recovery were automatically cancelled... 🤔
Diffstat (limited to 'compiler/rustc_parse/src')
| -rw-r--r-- | compiler/rustc_parse/src/parser/stmt.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/compiler/rustc_parse/src/parser/stmt.rs b/compiler/rustc_parse/src/parser/stmt.rs index 54854cd2da9..ea9c78ca34c 100644 --- a/compiler/rustc_parse/src/parser/stmt.rs +++ b/compiler/rustc_parse/src/parser/stmt.rs @@ -787,13 +787,17 @@ impl<'a> Parser<'a> { let suggest_eq = if self.token.kind == token::Dot && let _ = self.bump() && let mut snapshot = self.create_snapshot_for_diagnostic() - && let Ok(_) = snapshot.parse_dot_suffix_expr( - colon_sp, - self.mk_expr_err( + && let Ok(_) = snapshot + .parse_dot_suffix_expr( colon_sp, - self.dcx().delayed_bug("error during `:` -> `=` recovery"), - ), - ) { + self.mk_expr_err( + colon_sp, + self.dcx() + .delayed_bug("error during `:` -> `=` recovery"), + ), + ) + .map_err(Diag::cancel) + { true } else if let Some(op) = self.check_assoc_op() && op.node.can_continue_expr_unambiguously() |
