diff options
Diffstat (limited to 'src/comp/syntax/parse/parser.rs')
| -rw-r--r-- | src/comp/syntax/parse/parser.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/comp/syntax/parse/parser.rs b/src/comp/syntax/parse/parser.rs index a0863319b8d..8ea55673207 100644 --- a/src/comp/syntax/parse/parser.rs +++ b/src/comp/syntax/parse/parser.rs @@ -1543,14 +1543,22 @@ fn parse_auto_local(&parser p) -> @ast::local { fn parse_let(&parser p) -> @ast::decl { auto lo = p.get_last_lo_pos(); - auto local = parse_typed_local(p); - ret @spanned(lo, p.get_hi_pos(), ast::decl_local(local)); + auto locals = ~[parse_typed_local(p)]; + while p.peek() == token::COMMA { + p.bump(); + locals += ~[parse_typed_local(p)]; + } + ret @spanned(lo, p.get_hi_pos(), ast::decl_local(locals)); } fn parse_auto(&parser p) -> @ast::decl { auto lo = p.get_last_lo_pos(); - auto local = parse_auto_local(p); - ret @spanned(lo, p.get_hi_pos(), ast::decl_local(local)); + auto locals = ~[parse_auto_local(p)]; + while p.peek() == token::COMMA { + p.bump(); + locals += ~[parse_auto_local(p)]; + } + ret @spanned(lo, p.get_hi_pos(), ast::decl_local(locals)); } fn parse_stmt(&parser p) -> @ast::stmt { |
