Skip to content

Commit f4e85c3

Browse files
committed
---
yaml --- r: 7421 b: refs/heads/master c: 1aaee20 h: refs/heads/master i: 7419: b14face v: v3
1 parent 27abbca commit f4e85c3

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 397d9148a77cfdbbc850da4fa97310afc218a385
2+
refs/heads/master: 1aaee207378eeb4a6335c1c3621fff9296f2bb63

trunk/src/comp/syntax/parse/parser.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2047,7 +2047,8 @@ fn parse_item_tag(p: parser, attrs: [ast::attribute]) -> @ast::item {
20472047
expect(p, token::LBRACE);
20482048
let all_nullary = true;
20492049
let have_disr = false;
2050-
while p.token != token::RBRACE {
2050+
let done = false;
2051+
while !done {
20512052
let tok = p.token;
20522053
alt tok {
20532054
token::IDENT(name, _) {
@@ -2075,13 +2076,21 @@ fn parse_item_tag(p: parser, attrs: [ast::attribute]) -> @ast::item {
20752076
}
20762077
_ {/* empty */ }
20772078
}
2078-
expect(p, token::SEMI);
2079+
2080+
alt p.token {
2081+
token::SEMI. | token::COMMA. {
2082+
p.bump();
2083+
if p.token == token::RBRACE { done = true; }
2084+
}
2085+
token::RBRACE. { done = true; }
2086+
_ { /* fall through */ }
2087+
}
2088+
20792089
p.get_id();
20802090
let vr = {name: p.get_str(name), args: args, id: p.get_id(),
20812091
disr_expr: disr_expr};
20822092
variants += [spanned(vlo, vhi, vr)];
20832093
}
2084-
token::RBRACE. {/* empty */ }
20852094
_ {
20862095
p.fatal("expected name of variant or '}' but found '" +
20872096
token::to_str(p.reader, tok) + "'");

0 commit comments

Comments
 (0)