diff --git a/src/librustc/ty/layout.rs b/src/librustc/ty/layout.rs index 6a2fdc6aab69b..f429053d8bb12 100644 --- a/src/librustc/ty/layout.rs +++ b/src/librustc/ty/layout.rs @@ -1190,9 +1190,7 @@ impl<'a, 'gcx, 'tcx> Layout { // FIXME: should handle i128? signed-value based impl is weird and hard to // grok. - let (discr, signed) = Integer::repr_discr(tcx, ty, &hints[..], - min, - max); + let (discr, signed) = Integer::repr_discr(tcx, ty, &def.repr, min, max); return success(CEnum { discr: discr, signed: signed, @@ -1309,7 +1307,7 @@ impl<'a, 'gcx, 'tcx> Layout { // The general case. let discr_max = (variants.len() - 1) as i64; assert!(discr_max >= 0); - let (min_ity, _) = Integer::repr_discr(tcx, ty, &hints[..], 0, discr_max); + let (min_ity, _) = Integer::repr_discr(tcx, ty, &def.repr, 0, discr_max); let mut align = dl.aggregate_align; let mut size = Size::from_bytes(0); diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index 88c04d88a6fc0..abc3ffcf86b11 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -546,12 +546,12 @@ impl<'a, 'tcx> CrateMetadata { let did = self.local_def_id(item_id); let (kind, ty) = match item.kind { EntryKind::Enum(dt, _) => (ty::AdtKind::Enum, Some(dt.decode(self))), - EntryKind::Struct(_) => (ty::AdtKind::Struct, None), - EntryKind::Union(_) => (ty::AdtKind::Union, None), + EntryKind::Struct(_, _) => (ty::AdtKind::Struct, None), + EntryKind::Union(_, _) => (ty::AdtKind::Union, None), _ => bug!("get_adt_def called on a non-ADT {:?}", did), }; let mut ctor_index = None; - let variants = if let EntryKind::Enum(_) = item.kind { + let variants = if let ty::AdtKind::Enum = kind { item.children .decode(self) .map(|index| { diff --git a/src/librustc_metadata/encoder.rs b/src/librustc_metadata/encoder.rs index b913f68e5842a..0f9491aaf15b4 100644 --- a/src/librustc_metadata/encoder.rs +++ b/src/librustc_metadata/encoder.rs @@ -661,7 +661,8 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> { } hir::ItemForeignMod(_) => EntryKind::ForeignMod, hir::ItemTy(..) => EntryKind::Type, - hir::ItemEnum(..) => EntryKind::Enum(self.lazy(&tcx.lookup_adt_def(def_id).discr_ty), get_repr_options(&tcx, def_id)), + hir::ItemEnum(..) => EntryKind::Enum(self.lazy(&tcx.lookup_adt_def(def_id).discr_ty), + get_repr_options(&tcx, def_id)), hir::ItemStruct(ref struct_def, _) => { let variant = tcx.lookup_adt_def(def_id).struct_variant();