about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2011-09-23 11:19:15 +0200
committerMarijn Haverbeke <marijnh@gmail.com>2011-09-23 11:19:15 +0200
commit348cd86d87521ba6ee74c3f06d13fcccf6b8a7f3 (patch)
tree45d1a4715e5cc82d0f1a7f7045a0944b24e07ef3
parent0bbde048a414bdf6dcdf7e00cc429bf8d8d2a5f0 (diff)
downloadrust-348cd86d87521ba6ee74c3f06d13fcccf6b8a7f3.tar.gz
rust-348cd86d87521ba6ee74c3f06d13fcccf6b8a7f3.zip
Properly check types of do-while condition expr
Closes #956
-rw-r--r--src/comp/middle/typeck.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs
index 7d7936b6cf1..c5a883b2bb6 100644
--- a/src/comp/middle/typeck.rs
+++ b/src/comp/middle/typeck.rs
@@ -1920,7 +1920,8 @@ fn check_expr_with_unifier(fcx: @fn_ctxt, expr: @ast::expr, unify: unifier,
         write::ty_only_fixup(fcx, id, ty::mk_nil(tcx));
       }
       ast::expr_do_while(body, cond) {
-        bot = check_expr(fcx, cond) | check_block(fcx, body);
+        bot = check_expr_with(fcx, cond, ty::mk_bool(tcx)) |
+              check_block(fcx, body);
         write::ty_only_fixup(fcx, id, block_ty(tcx, body));
       }
       ast::expr_alt(expr, arms) {