Skip to content

Commit a0ee167

Browse files
committed
---
yaml --- r: 3827 b: refs/heads/master c: 9a0e85a h: refs/heads/master i: 3825: 7543afa 3823: e9242fa v: v3
1 parent 6e86fd6 commit a0ee167

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
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: 48dbee6b470571241a9f7f6e8b9b36c579296cc7
2+
refs/heads/master: 9a0e85a92038529e177440f01be127f13cd8d8c8

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1465,19 +1465,19 @@ fn parse_pat(&parser p) -> @ast::pat {
14651465
auto etc = false;
14661466
auto first = true;
14671467
while (p.peek() != token::RBRACE) {
1468-
if (p.peek() == token::DOT) {
1468+
if (first) { first = false; }
1469+
else { expect(p, token::COMMA); }
1470+
1471+
if (p.peek() == token::UNDERSCORE) {
14691472
p.bump();
1470-
expect(p, token::DOT);
1471-
expect(p, token::DOT);
14721473
if (p.peek() != token::RBRACE) {
14731474
p.fatal("expecting }, found " +
14741475
token::to_str(p.get_reader(), p.peek()));
14751476
}
14761477
etc = true;
14771478
break;
14781479
}
1479-
if (first) { first = false; }
1480-
else { expect(p, token::COMMA); }
1480+
14811481
auto fieldname = parse_ident(p);
14821482
auto subpat;
14831483
if (p.peek() == token::COLON) {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ fn to_str(lexer::reader r, token t) -> str {
116116
/* Structural symbols */
117117
case (AT) { ret "@"; }
118118
case (DOT) { ret "."; }
119+
case (ELIPSIS) { ret "..."; }
119120
case (COMMA) { ret ","; }
120121
case (SEMI) { ret ";"; }
121122
case (COLON) { ret ":"; }

trunk/src/test/run-pass/record-pat.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ tag t3 { c(t2, uint); }
44

55
fn m(&t3 in) -> int {
66
alt in {
7-
c({x: a(?m) ...}, _) { ret m; }
7+
c({x: a(?m), _}, _) { ret m; }
88
c({x: b(?m), y}, ?z) { ret (m + z) as int + y; }
99
}
1010
}

0 commit comments

Comments
 (0)