Skip to content

Commit 9abc7f0

Browse files
committed
(For legacy code:) In liveness, require that by-move arguments are rvalues
1 parent 632d606 commit 9abc7f0

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/rustc/middle/liveness.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -1461,7 +1461,15 @@ fn check_expr(expr: @expr, &&self: @Liveness, vt: vt<@Liveness>) {
14611461
match ty::resolved_mode(self.tcx, arg_ty.mode) {
14621462
by_val | by_copy | by_ref => {}
14631463
by_move => {
1464-
self.check_move_from_expr(*arg_expr, vt);
1464+
if ty::expr_is_lval(self.tcx, self.ir.method_map,
1465+
*arg_expr) {
1466+
// Probably a bad error message (what's an rvalue?)
1467+
// but I can't think of anything better
1468+
self.tcx.sess.span_err(arg_expr.span,
1469+
#fmt("Move mode argument must be an rvalue: try \
1470+
(move %s) instead", expr_to_str(*arg_expr,
1471+
self.tcx.sess.intr())));
1472+
}
14651473
}
14661474
}
14671475
}

0 commit comments

Comments
 (0)