about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-08-25 16:06:35 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-08-25 16:06:35 -0700
commitd77acf7d076fdd7c0b5cf7fae880728c0f6f80e1 (patch)
tree932b4c36e07a54454444c3905b833cb7aa6b10be /src/libsyntax/parse
parent8ef455190494d2fd9a6bb013efd2e59622af2bc4 (diff)
downloadrust-d77acf7d076fdd7c0b5cf7fae880728c0f6f80e1.tar.gz
rust-d77acf7d076fdd7c0b5cf7fae880728c0f6f80e1.zip
libsyntax: Accept ',' to separate struct fields. Closes #3263.
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/parser.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 84fd0d8cdc9..840791d840b 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2698,7 +2698,19 @@ struct parser {
                 !self.is_any_keyword(copy self.token)) &&
                 !self.token_is_pound_or_doc_comment(self.token) {
             let a_var = self.parse_instance_var(vis);
-            self.expect(token::SEMI);
+            match self.token {
+                token::SEMI | token::COMMA => {
+                    self.bump();
+                }
+                token::RBRACE => {}
+                _ => {
+                    self.span_fatal(copy self.span,
+                                    fmt!("expected `;`, `,`, or '}' but \
+                                          found `%s`",
+                                         token_to_str(self.reader,
+                                                      self.token)));
+                }
+            }
             return a_var;
         } else {
             let m = self.parse_method(vis);