diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 84fd0d8cdc998..840791d840bb2 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 418dfbf334907..f4d7817f5640e 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, ~","); } } }