diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-02-27 03:05:14 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-03-02 10:31:19 +0300 |
| commit | 8b026a6e48ceadb2032b4982077fcdfab802cde5 (patch) | |
| tree | 00e536ee4d34cfc277f0c8e7b4bf9a04a8613e0c /src/librustc_metadata/decoder.rs | |
| parent | 8b60b948d94b835a1a573d34e44c55251c6cfa98 (diff) | |
| download | rust-8b026a6e48ceadb2032b4982077fcdfab802cde5.tar.gz rust-8b026a6e48ceadb2032b4982077fcdfab802cde5.zip | |
Use numeric field `Name`s ("0", "1" etc) for positional fields
Diffstat (limited to 'src/librustc_metadata/decoder.rs')
| -rw-r--r-- | src/librustc_metadata/decoder.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index 8295ffebda3..bce83d33f9f 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -48,8 +48,7 @@ use rbml::reader; use rbml; use serialize::Decodable; use syntax::attr; -use syntax::parse::token::{IdentInterner, special_idents}; -use syntax::parse::token; +use syntax::parse::token::{self, IdentInterner}; use syntax::ast; use syntax::abi::Abi; use syntax::codemap::{self, Span, BytePos, NO_EXPANSION}; @@ -406,6 +405,7 @@ pub fn get_adt_def<'tcx>(intr: &IdentInterner, cdata: Cmd, doc: rbml::Doc, tcx: &ty::ctxt<'tcx>) -> Vec<ty::FieldDefData<'tcx, 'tcx>> { + let mut index = 0; reader::tagged_docs(doc, tag_item_field).map(|f| { let ff = item_family(f); match ff { @@ -417,8 +417,9 @@ pub fn get_adt_def<'tcx>(intr: &IdentInterner, struct_field_family_to_visibility(ff)) }).chain(reader::tagged_docs(doc, tag_item_unnamed_field).map(|f| { let ff = item_family(f); - ty::FieldDefData::new(item_def_id(f, cdata), - special_idents::unnamed_field.name, + let name = intr.intern(&index.to_string()); + index += 1; + ty::FieldDefData::new(item_def_id(f, cdata), name, struct_field_family_to_visibility(ff)) })).collect() } @@ -1153,10 +1154,13 @@ fn struct_field_family_to_visibility(family: Family) -> hir::Visibility { pub fn get_struct_field_names(intr: &IdentInterner, cdata: Cmd, id: DefIndex) -> Vec<ast::Name> { let item = cdata.lookup_item(id); + let mut index = 0; reader::tagged_docs(item, tag_item_field).map(|an_item| { item_name(intr, an_item) }).chain(reader::tagged_docs(item, tag_item_unnamed_field).map(|_| { - special_idents::unnamed_field.name + let name = intr.intern(&index.to_string()); + index += 1; + name })).collect() } |
