about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2017-11-23 13:15:31 -0800
committerEsteban Küber <esteban@kuber.com.ar>2017-11-24 07:34:32 -0800
commit4e2d1b946696357d7a57dcc6dfd47c42f91c3c10 (patch)
tree8f3cae334060f16db74f15a36127a8783285a0cb /src/libsyntax/parse/parser.rs
parentdf357b20be69d799fb9d562c33cbb98a03c64ae9 (diff)
downloadrust-4e2d1b946696357d7a57dcc6dfd47c42f91c3c10.tar.gz
rust-4e2d1b946696357d7a57dcc6dfd47c42f91c3c10.zip
Emit `DocComment` in bad location error but continue parsing struct fields
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index be7e589f4ad..07b918da0d1 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -5419,8 +5419,16 @@ impl<'a> Parser<'a> {
                 self.bump();
             }
             token::CloseDelim(token::Brace) => {}
-            token::DocComment(_) => return Err(self.span_fatal_err(self.span,
-                                                                   Error::UselessDocComment)),
+            token::DocComment(_) => {
+                let mut err = self.span_fatal_err(self.span, Error::UselessDocComment);
+                if self.eat(&token::Comma) ||
+                    self.look_ahead(1, |t| *t == token::CloseDelim(token::Brace))
+                {
+                    err.emit();
+                } else {
+                    return Err(err);
+                }
+            }
             _ => return Err(self.span_fatal_help(self.span,
                     &format!("expected `,`, or `}}`, found `{}`", self.this_token_to_string()),
                     "struct fields should be separated by commas")),