about summary refs log tree commit diff
path: root/compiler/rustc_parse/src
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2025-06-26 17:53:39 +0000
committerMichael Goulet <michael@errs.io>2025-06-26 18:11:14 +0000
commite63921262ccd2ece7e0861d634f111136da1f7da (patch)
tree7fc59636ab2dc9acdaa6013afee3411b268ef8ba /compiler/rustc_parse/src
parent94e9973b92c481d20e5fe1466bbc47f818101d5f (diff)
downloadrust-e63921262ccd2ece7e0861d634f111136da1f7da.tar.gz
rust-e63921262ccd2ece7e0861d634f111136da1f7da.zip
Make recovery for enum with struct field a bit more accurate
Diffstat (limited to 'compiler/rustc_parse/src')
-rw-r--r--compiler/rustc_parse/src/parser/item.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/item.rs b/compiler/rustc_parse/src/parser/item.rs
index 5088caa80f8..9ed7124a11c 100644
--- a/compiler/rustc_parse/src/parser/item.rs
+++ b/compiler/rustc_parse/src/parser/item.rs
@@ -1552,7 +1552,8 @@ impl<'a> Parser<'a> {
             })
             .map_err(|mut err| {
                 err.span_label(ident.span, "while parsing this enum");
-                if self.token == token::Colon {
+                // Try to recover `enum Foo { ident : Ty }`.
+                if self.prev_token.is_non_reserved_ident() && self.token == token::Colon {
                     let snapshot = self.create_snapshot_for_diagnostic();
                     self.bump();
                     match self.parse_ty() {