about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-06-17 11:01:38 -0700
committerBrian Anderson <banderson@mozilla.com>2011-06-17 11:35:00 -0700
commit753da64fd6a98b32602cdfda35d39d36c961c94a (patch)
tree1aa9e001044c021e73307d5be97dfada5457617f /src/comp
parent1dbc0442cddb0317938a481b7afb7e4113658d78 (diff)
downloadrust-753da64fd6a98b32602cdfda35d39d36c961c94a.tar.gz
rust-753da64fd6a98b32602cdfda35d39d36c961c94a.zip
rustc: Demand unification of both sides of a binop
Issue #500
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/typeck.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs
index d96cc79faf4..e238b554b53 100644
--- a/src/comp/middle/typeck.rs
+++ b/src/comp/middle/typeck.rs
@@ -1522,7 +1522,12 @@ fn check_expr(&@fn_ctxt fcx, &@ast::expr expr) {
         case (ast::expr_binary(?binop, ?lhs, ?rhs, ?a)) {
             check_expr(fcx, lhs);
             check_expr(fcx, rhs);
+
             auto lhs_t = expr_ty(fcx.ccx.tcx, lhs);
+            auto rhs_t = expr_ty(fcx.ccx.tcx, rhs);
+
+            demand::autoderef(fcx, expr.span, lhs_t, rhs_t, AUTODEREF_OK);
+
             // FIXME: Binops have a bit more subtlety than this.
 
             auto t = strip_boxes(fcx, expr.span, lhs_t);