summary refs log tree commit diff
path: root/src/comp/syntax/parse/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/syntax/parse/parser.rs')
-rw-r--r--src/comp/syntax/parse/parser.rs16
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 {