From b8f6de4aca47ddd1daa5217813848155a2a825fa Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Thu, 18 Apr 2019 14:39:03 -0700 Subject: Generalize discriminant info calls for generators and ADTs --- src/librustc_codegen_llvm/debuginfo/metadata.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src/librustc_codegen_llvm/debuginfo') diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/src/librustc_codegen_llvm/debuginfo/metadata.rs index 54d15e527c9..6f427f29fcc 100644 --- a/src/librustc_codegen_llvm/debuginfo/metadata.rs +++ b/src/librustc_codegen_llvm/debuginfo/metadata.rs @@ -1382,12 +1382,6 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> { variant_type_metadata, member_descriptions); - // TODO make this into a helper - let discriminant = match &self.layout.ty.sty { - ty::Adt(adt, _) => adt.discriminant_for_variant(cx.tcx, i).val as u64, - ty::Generator(..) => i.as_usize() as u64, - _ => bug!(), - }.into(); MemberDescription { name: if fallback { String::new() @@ -1399,7 +1393,9 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> { size: self.layout.size, align: self.layout.align.abi, flags: DIFlags::FlagZero, - discriminant, + discriminant: Some( + self.layout.ty.discriminant_for_variant(cx.tcx, i).unwrap().val as u64 + ), } }).collect() } @@ -1722,7 +1718,7 @@ fn prepare_enum_metadata( }) .collect(), ty::Generator(_, substs, _) => substs - .variants(enum_def_id, cx.tcx) + .variant_range(enum_def_id, cx.tcx) .map(|v| substs.map_variant_name(v, |name| { let name = SmallCStr::new(name); unsafe { -- cgit 1.4.1-3-g733a5