diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2011-06-10 10:46:59 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2011-06-10 10:47:33 -0700 |
| commit | dfdd6dbc5464147d984470086ab27c950d60d83e (patch) | |
| tree | 0cef168e2bebe9ce4aeba5a96f1647216bee3ea4 /src/comp/middle | |
| parent | 7a066ba547ab900d22fd435652fd9106ba180dfa (diff) | |
rustc: Remove the bitwise not operator
Diffstat (limited to 'src/comp/middle')
| -rw-r--r-- | src/comp/middle/trans.rs | 5 | ||||
| -rw-r--r-- | src/comp/middle/typeck.rs | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 4e1c3a01f44..ec51e8e691b 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -3388,11 +3388,6 @@ fn trans_unary(&@block_ctxt cx, ast::unop op, auto e_ty = ty::expr_ty(cx.fcx.lcx.ccx.tcx, e); alt (op) { - case (ast::bitnot) { - sub = autoderef(sub.bcx, sub.val, - ty::expr_ty(cx.fcx.lcx.ccx.tcx, e)); - ret res(sub.bcx, sub.bcx.build.Not(sub.val)); - } case (ast::not) { sub = autoderef(sub.bcx, sub.val, ty::expr_ty(cx.fcx.lcx.ccx.tcx, e)); diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index fe7d793db7f..289691444b0 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -1580,6 +1580,16 @@ fn check_expr(&@fn_ctxt fcx, &@ast::expr expr) { } } } + case (ast::not) { + if (!type_is_integral(fcx, oper.span, oper_t) && + structure_of(fcx, oper.span, oper_t) + != ty::ty_bool) { + fcx.ccx.tcx.sess.span_err(expr.span, + #fmt("mismatched types: expected bool or \ + integer but found %s", + ty_to_str(fcx.ccx.tcx, oper_t))); + } + } case (_) { oper_t = strip_boxes(fcx, expr.span, oper_t); } } |
