diff options
| author | Tyler Mandry <tmandry@gmail.com> | 2019-04-18 14:39:03 -0700 |
|---|---|---|
| committer | Tyler Mandry <tmandry@gmail.com> | 2019-04-25 10:28:09 -0700 |
| commit | b8f6de4aca47ddd1daa5217813848155a2a825fa (patch) | |
| tree | 9c7ea87c73cf976fcca8be1b17f2971859ef2cb0 /src/librustc_codegen_llvm/debuginfo | |
| parent | f772c39bf9fb3af982bb9a4728d4fdc7308a8bbd (diff) | |
| download | rust-b8f6de4aca47ddd1daa5217813848155a2a825fa.tar.gz rust-b8f6de4aca47ddd1daa5217813848155a2a825fa.zip | |
Generalize discriminant info calls for generators and ADTs
Diffstat (limited to 'src/librustc_codegen_llvm/debuginfo')
| -rw-r--r-- | src/librustc_codegen_llvm/debuginfo/metadata.rs | 12 |
1 files changed, 4 insertions, 8 deletions
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 { |
