fix enum variant downcasting
This commit is contained in:
parent
1e0b3b207d
commit
477d1c20f4
1 changed files with 2 additions and 2 deletions
|
@ -907,9 +907,9 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
|
||||||
Downcast(_, variant) => {
|
Downcast(_, variant) => {
|
||||||
use rustc::ty::layout::Layout::*;
|
use rustc::ty::layout::Layout::*;
|
||||||
match *base_layout {
|
match *base_layout {
|
||||||
General { discr, .. } => {
|
General { ref variants, .. } => {
|
||||||
return Ok(Lvalue {
|
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),
|
extra: LvalueExtra::DowncastVariant(variant),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue