From 753da64fd6a98b32602cdfda35d39d36c961c94a Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 17 Jun 2011 11:01:38 -0700 Subject: [PATCH] rustc: Demand unification of both sides of a binop Issue #500 --- src/comp/middle/typeck.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index d96cc79faf4c..e238b554b534 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);