X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustc%2Ffront%2Fmap%2Fcollector.rs;h=fc7531d3f61bae924d5091dbd6ec080c59cd7cf6;hb=46750d0409a9c3ba5214aa20ccb0c9bdbf09ea7e;hp=5f3148c7c33c57571882e009d36932884f324fa7;hpb=11a612795a8c93852fc1ed66118549e4dc6be99d;p=rust.git diff --git a/src/librustc/front/map/collector.rs b/src/librustc/front/map/collector.rs index 5f3148c7c33..fc7531d3f61 100644 --- a/src/librustc/front/map/collector.rs +++ b/src/librustc/front/map/collector.rs @@ -134,26 +134,15 @@ fn visit_item(&mut self, i: &'ast Item) { ItemEnum(ref enum_definition, _) => { for v in &enum_definition.variants { let variant_def_index = - self.insert_def(v.node.id, + self.insert_def(v.node.data.id(), NodeVariant(&**v), DefPathData::EnumVariant(v.node.name)); - match v.node.kind { - TupleVariantKind(ref args) => { - for arg in args { - self.create_def_with_parent(Some(variant_def_index), - arg.id, - DefPathData::PositionalField); - } - } - StructVariantKind(ref def) => { - for field in &def.fields { - self.create_def_with_parent( - Some(variant_def_index), - field.node.id, - DefPathData::Field(field.node.kind)); - } - } + for field in v.node.data.fields() { + self.create_def_with_parent( + Some(variant_def_index), + field.node.id, + DefPathData::Field(field.node.kind)); } } } @@ -161,13 +150,13 @@ fn visit_item(&mut self, i: &'ast Item) { } ItemStruct(ref struct_def, _) => { // If this is a tuple-like struct, register the constructor. - if let Some(ctor_id) = struct_def.ctor_id { - self.insert_def(ctor_id, + if !struct_def.is_struct() { + self.insert_def(struct_def.id(), NodeStructCtor(&**struct_def), DefPathData::StructCtor); } - for field in &struct_def.fields { + for field in struct_def.fields() { self.create_def(field.node.id, DefPathData::Field(field.node.kind)); } }