From 092af6fb764207693a01bb37ce4e38ddb8010e1e Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 25 Nov 2010 14:44:04 -0800 Subject: [PATCH] Typecheck tup expressions. --- src/comp/middle/typeck.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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;