From 477d1c20f46d122b4010c099834ff9b9938a4fd6 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Tue, 20 Sep 2016 13:34:53 +0200 Subject: [PATCH] fix enum variant downcasting --- src/interpreter/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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), }); }