From d77acf7d076fdd7c0b5cf7fae880728c0f6f80e1 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Sat, 25 Aug 2012 16:06:35 -0700 Subject: [PATCH] libsyntax: Accept ',' to separate struct fields. Closes #3263. --- src/libsyntax/parse/parser.rs | 14 +++++++++++++- src/libsyntax/print/pprust.rs | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 84fd0d8cdc99..840791d840bb 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 418dfbf33490..f4d7817f5640 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, ~","); } } }