about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/typeck.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs
index 9c66895d4fb..76636896f57 100644
--- a/src/comp/middle/typeck.rs
+++ b/src/comp/middle/typeck.rs
@@ -1200,6 +1200,21 @@ fn check_expr(&fn_ctxt fcx, @ast.expr expr) -> @ast.expr {
                                                       ast.ann_type(t_1)));
         }
 
+        case (ast.expr_tup(?args, _)) {
+            let vec[tup(bool, @ast.expr)] args_1 = vec();
+            let vec[tup(bool, @ty)] args_t = vec();
+
+            for (tup(bool, @ast.expr) arg in args) {
+                auto expr_1 = check_expr(fcx, arg._1);
+                args_1 += tup(arg._0, expr_1);
+                args_t += tup(arg._0, expr_ty(expr_1));
+            }
+
+            auto ann = ast.ann_type(plain_ty(ty_tup(args_t)));
+            ret @fold.respan[ast.expr_](expr.span,
+                                        ast.expr_tup(args_1, ann));
+        }
+
         case (_) {
             // TODO
             ret expr;