diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-06-17 11:01:38 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-06-17 11:35:00 -0700 |
| commit | 753da64fd6a98b32602cdfda35d39d36c961c94a (patch) | |
| tree | 1aa9e001044c021e73307d5be97dfada5457617f /src/comp | |
| parent | 1dbc0442cddb0317938a481b7afb7e4113658d78 (diff) | |
| download | rust-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.rs | 5 |
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); |
