diff --git a/src/eval_context.rs b/src/eval_context.rs index 43cd9fe56640220796ae7af798b4b167d58abbe4..aa2f44008d42cd6d01a4629fcdd3931e83a5cd7c 100644 --- a/src/eval_context.rs +++ b/src/eval_context.rs @@ -776,7 +776,8 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> { pub(super) fn eval_operand(&mut self, op: &mir::Operand<'tcx>) -> EvalResult<'tcx, Value> { use rustc::mir::Operand::*; match *op { - Consume(ref lvalue) => self.eval_and_read_lvalue(lvalue), + Copy(ref lvalue) => self.eval_and_read_lvalue(lvalue), + Move(ref lvalue) => self.eval_and_read_lvalue(lvalue), Constant(ref constant) => { use rustc::mir::Literal; diff --git a/src/terminator/mod.rs b/src/terminator/mod.rs index e382098afa8819b4daf23c9f1d1b7ca3929c7de3..655c15a84ed0e220cfdffd7bc6fc53a431adbcb2 100644 --- a/src/terminator/mod.rs +++ b/src/terminator/mod.rs @@ -474,7 +474,8 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> { let ty = self.operand_ty(&arg_operands[0]); let ty = self.get_field_ty(ty, 0)?.ty; match arg_operands[0] { - mir::Operand::Consume(ref mut lval) => *lval = lval.clone().field(mir::Field::new(0), ty), + mir::Operand::Copy(ref mut lval) => *lval = lval.clone().field(mir::Field::new(0), ty), + mir::Operand::Move(ref mut lval) => *lval = lval.clone().field(mir::Field::new(0), ty), _ => bug!("virtual call first arg cannot be a constant"), } // recurse with concrete function