Skip to content
Permalink
Browse files

Refactor const_to_op

  • Loading branch information...
varkor committed Mar 6, 2019
1 parent ed9227a commit de4478af91765999f51b2950bea16686ee4cd60a
Showing with 4 additions and 9 deletions.
  1. +4 −9 src/librustc_mir/interpret/operand.rs
@@ -589,17 +589,12 @@ impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M>
val: ty::Const<'tcx>,
layout: Option<TyLayout<'tcx>>,
) -> EvalResult<'tcx, OpTy<'tcx, M::PointerTag>> {
let val = self.monomorphize(val)?;
let layout = from_known_layout(layout, || {
let ty = self.monomorphize(val.ty)?;
self.layout_of(ty)
self.layout_of(val.ty)
})?;
let val = match val.val {
ConstValue::Param(_) => self.monomorphize(val)?.val,
ConstValue::Infer(_) => bug!(),
val => val,
};
let op = match val {
ConstValue::Param(_) | ConstValue::Infer(_) => unreachable!(),
let op = match val.val {
ConstValue::Param(_) | ConstValue::Infer(_) => bug!(),
ConstValue::ByRef(ptr, alloc) => {
// We rely on mutability being set correctly in that allocation to prevent writes
// where none should happen -- and for `static mut`, we copy on demand anyway.

0 comments on commit de4478a

Please sign in to comment.
You can’t perform that action at this time.