diff --git a/src/interpreter/mod.rs b/src/interpreter/mod.rs index 095b8c0c534..9338044e534 100644 --- a/src/interpreter/mod.rs +++ b/src/interpreter/mod.rs @@ -907,9 +907,9 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> { Downcast(_, variant) => { use rustc::ty::layout::Layout::*; match *base_layout { - General { discr, .. } => { + General { ref variants, .. } => { return Ok(Lvalue { - ptr: base.ptr.offset(discr.size().bytes() as isize), + ptr: base.ptr.offset(variants[variant].field_offset(1).bytes() as isize), extra: LvalueExtra::DowncastVariant(variant), }); }