Store Ident rather than just Name in HIR types Item and ForeignItem.

This commit is contained in:
Alexander Regueiro 2018-12-01 02:47:08 +00:00
parent 79d8a0fcef
commit 1b150c4043
38 changed files with 221 additions and 157 deletions

View file

@ -1215,7 +1215,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
name: if fallback {
String::new()
} else {
adt.variants[index].name.as_str().to_string()
adt.variants[index].ident.as_str().to_string()
},
type_metadata: variant_type_metadata,
offset: Size::ZERO,
@ -1255,7 +1255,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
name: if fallback {
String::new()
} else {
adt.variants[i].name.as_str().to_string()
adt.variants[i].ident.as_str().to_string()
},
type_metadata: variant_type_metadata,
offset: Size::ZERO,
@ -1321,7 +1321,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
self.layout,
self.layout.fields.offset(0),
self.layout.field(cx, 0).size);
name.push_str(&adt.variants[*niche_variants.start()].name.as_str());
name.push_str(&adt.variants[*niche_variants.start()].ident.as_str());
// Create the (singleton) list of descriptions of union members.
vec![
@ -1365,7 +1365,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
};
MemberDescription {
name: adt.variants[i].name.as_str().to_string(),
name: adt.variants[i].ident.as_str().to_string(),
type_metadata: variant_type_metadata,
offset: Size::ZERO,
size: self.layout.size,
@ -1433,7 +1433,7 @@ fn describe_enum_variant(
containing_scope: &'ll DIScope,
span: Span,
) -> (&'ll DICompositeType, MemberDescriptionFactory<'ll, 'tcx>) {
let variant_name = variant.name.as_str();
let variant_name = variant.ident.as_str();
let unique_type_id = debug_context(cx).type_map
.borrow_mut()
.get_unique_type_id_of_enum_variant(
@ -1527,7 +1527,7 @@ fn prepare_enum_metadata(
let enumerators_metadata: Vec<_> = def.discriminants(cx.tcx)
.zip(&def.variants)
.map(|((_, discr), v)| {
let name = SmallCStr::new(&v.name.as_str());
let name = SmallCStr::new(&v.ident.as_str());
unsafe {
Some(llvm::LLVMRustDIBuilderCreateEnumerator(
DIB(cx),

View file

@ -60,7 +60,7 @@ fn uncached_llvm_type<'a, 'tcx>(cx: &CodegenCx<'a, 'tcx>,
= (&layout.ty.sty, &layout.variants)
{
if def.is_enum() && !def.variants.is_empty() {
write!(&mut name, "::{}", def.variants[index].name).unwrap();
write!(&mut name, "::{}", def.variants[index].ident).unwrap();
}
}
Some(name)