File tree Expand file tree Collapse file tree 3 files changed +7
-6
lines changed Expand file tree Collapse file tree 3 files changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -1465,19 +1465,19 @@ fn parse_pat(&parser p) -> @ast::pat {
1465
1465
auto etc = false;
1466
1466
auto first = true;
1467
1467
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 ) {
1469
1472
p. bump( ) ;
1470
- expect( p, token:: DOT ) ;
1471
- expect( p, token:: DOT ) ;
1472
1473
if ( p. peek( ) != token:: RBRACE ) {
1473
1474
p. fatal( "expecting } , found " +
1474
1475
token:: to_str( p. get_reader( ) , p. peek( ) ) ) ;
1475
1476
}
1476
1477
etc = true;
1477
1478
break ;
1478
1479
}
1479
- if ( first) { first = false; }
1480
- else { expect( p, token:: COMMA ) ; }
1480
+
1481
1481
auto fieldname = parse_ident( p) ;
1482
1482
auto subpat;
1483
1483
if ( p. peek( ) == token:: COLON ) {
Original file line number Diff line number Diff line change @@ -116,6 +116,7 @@ fn to_str(lexer::reader r, token t) -> str {
116
116
/* Structural symbols */
117
117
case (AT) { ret " @"; }
118
118
case ( DOT ) { ret "." ; }
119
+ case ( ELIPSIS ) { ret "..."; }
119
120
case (COMMA) { ret " , "; }
120
121
case ( SEMI ) { ret "; "; }
121
122
case (COLON) { ret " : "; }
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ tag t3 { c(t2, uint); }
4
4
5
5
fn m ( & t3 in) -> int {
6
6
alt in {
7
- c( { x : a ( ?m) ... } , _) { ret m; }
7
+ c( { x : a ( ?m) , _ } , _) { ret m; }
8
8
c ( { x: b ( ?m) , y} , ?z) { ret ( m + z) as int + y; }
9
9
}
10
10
}
You can’t perform that action at this time.
0 commit comments