about summary refs log tree commit diff
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
parent8ef455190494d2fd9a6bb013efd2e59622af2bc4 (diff)
downloadrust-d77acf7d076fdd7c0b5cf7fae880728c0f6f80e1.tar.gz
rust-d77acf7d076fdd7c0b5cf7fae880728c0f6f80e1.zip
libsyntax: Accept ',' to separate struct fields. Closes #3263.
-rw-r--r--src/libsyntax/parse/parser.rs14
-rw-r--r--src/libsyntax/print/pprust.rs2
2 files changed, 14 insertions, 2 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);
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 418dfbf3349..f4d7817f564 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -646,7 +646,7 @@ fn print_struct(s: ps, struct_def: @ast::struct_def, tps: ~[ast::ty_param],
                 print_ident(s, ident);
                 word_nbsp(s, ~":");
                 print_type(s, field.node.ty);
-                word(s.s, ~";");
+                word(s.s, ~",");
             }
         }
     }