diff options
Diffstat (limited to 'src/librustc_trans/mir/lvalue.rs')
| -rw-r--r-- | src/librustc_trans/mir/lvalue.rs | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/librustc_trans/mir/lvalue.rs b/src/librustc_trans/mir/lvalue.rs index 883751d25a0..f39e3cb7812 100644 --- a/src/librustc_trans/mir/lvalue.rs +++ b/src/librustc_trans/mir/lvalue.rs @@ -367,8 +367,7 @@ impl<'a, 'tcx> LvalueRef<'tcx> { _ => bug!("discriminant not scalar: {:#?}", discr_layout) }; let (min, max) = match *l { - layout::CEnum { min, max, .. } => (min, max), - layout::General { ref variants, .. } => (0, variants.len() as u64 - 1), + layout::General { ref discr_range, .. } => (discr_range.start, discr_range.end), _ => (0, u64::max_value()), }; let max_next = max.wrapping_add(1); @@ -394,7 +393,6 @@ impl<'a, 'tcx> LvalueRef<'tcx> { } }; match *l { - layout::CEnum { .. } | layout::General { .. } => { let signed = match discr_scalar { layout::Int(_, signed) => signed, @@ -419,7 +417,6 @@ impl<'a, 'tcx> LvalueRef<'tcx> { .discriminant_for_variant(bcx.tcx(), variant_index) .to_u128_unchecked() as u64; match *l { - layout::CEnum { .. } | layout::General { .. } => { let ptr = self.project_field(bcx, 0); bcx.store(C_int(bcx.ccx.llvm_type_of(ptr.ty.to_ty(bcx.tcx())), to as i64), |
