about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 3cb40befa0e..a2c43ec3a2a 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -724,6 +724,12 @@ class parser {
                 let mut fields = [self.parse_field(token::COLON)];
                 let mut base = none;
                 while self.token != token::RBRACE {
+                    // optional comma before "with"
+                    if self.token == token::COMMA
+                        && self.token_is_keyword("with",
+                                                 self.look_ahead(1u)) {
+                        self.bump();
+                    }
                     if self.eat_keyword("with") {
                         base = some(self.parse_expr()); break;
                     }