Skip to content

Commit f790069

Browse files
committed
rustc: Remove tag_paths and all of the associated encoding
1 parent ea549e7 commit f790069

File tree

2 files changed

+0
-214
lines changed

2 files changed

+0
-214
lines changed

src/rustc/metadata/decoder.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export get_impl_traits;
2727
export get_class_method;
2828
export get_impl_method;
2929
export lookup_def;
30-
export lookup_item_name;
3130
export resolve_path;
3231
export get_crate_attributes;
3332
export list_crate_metadata;
@@ -242,10 +241,6 @@ fn item_name(item: ebml::doc) -> ast::ident {
242241
@str::from_bytes(ebml::doc_data(name))
243242
}
244243

245-
fn lookup_item_name(data: @~[u8], id: ast::node_id) -> ast::ident {
246-
item_name(lookup_item(id, data))
247-
}
248-
249244
fn item_to_def_like(item: ebml::doc, did: ast::def_id, cnum: ast::crate_num)
250245
-> def_like {
251246
let fam_ch = item_family(item);

src/rustc/metadata/encoder.rs

Lines changed: 0 additions & 209 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ fn reachable(ecx: @encode_ctxt, id: node_id) -> bool {
7373
ecx.reachable.contains_key(id)
7474
}
7575

76-
// Path table encoding
7776
fn encode_name(ebml_w: ebml::writer, name: ident) {
7877
ebml_w.wr_tagged_str(tag_paths_data_name, *name);
7978
}
@@ -82,26 +81,12 @@ fn encode_def_id(ebml_w: ebml::writer, id: def_id) {
8281
ebml_w.wr_tagged_str(tag_def_id, def_to_str(id));
8382
}
8483

85-
/* Encodes the given name, then def_id as tagged strings */
86-
fn encode_name_and_def_id(ebml_w: ebml::writer, nm: ident,
87-
id: node_id) {
88-
encode_name(ebml_w, nm);
89-
encode_def_id(ebml_w, local_def(id));
90-
}
91-
9284
fn encode_region_param(ecx: @encode_ctxt, ebml_w: ebml::writer,
9385
it: @ast::item) {
9486
let rp = ecx.tcx.region_paramd_items.contains_key(it.id);
9587
if rp { do ebml_w.wr_tag(tag_region_param) { } }
9688
}
9789

98-
fn encode_named_def_id(ebml_w: ebml::writer, name: ident, id: def_id) {
99-
do ebml_w.wr_tag(tag_paths_data_item) {
100-
encode_name(ebml_w, name);
101-
encode_def_id(ebml_w, id);
102-
}
103-
}
104-
10590
fn encode_mutability(ebml_w: ebml::writer, mt: class_mutability) {
10691
do ebml_w.wr_tag(tag_class_mut) {
10792
let val = match mt {
@@ -114,32 +99,6 @@ fn encode_mutability(ebml_w: ebml::writer, mt: class_mutability) {
11499

115100
type entry<T> = {val: T, pos: uint};
116101

117-
fn encode_enum_variant_paths(ebml_w: ebml::writer, variants: ~[variant],
118-
path: ~[ident], &index: ~[entry<~str>]) {
119-
for variants.each |variant| {
120-
add_to_index(ebml_w, path, index, variant.node.name);
121-
do ebml_w.wr_tag(tag_paths_data_item) {
122-
encode_name(ebml_w, variant.node.name);
123-
encode_def_id(ebml_w, local_def(variant.node.id));
124-
}
125-
}
126-
}
127-
128-
fn encode_trait_static_method_paths(ebml_w: ebml::writer,
129-
methods: ~[trait_method],
130-
path: ~[ident],
131-
&index: ~[entry<~str>]) {
132-
for methods.each |method| {
133-
let ty_m = trait_method_to_ty_method(method);
134-
if ty_m.self_ty.node != sty_static { again; }
135-
add_to_index(ebml_w, path, index, ty_m.ident);
136-
do ebml_w.wr_tag(tag_paths_data_item) {
137-
encode_name(ebml_w, ty_m.ident);
138-
encode_def_id(ebml_w, local_def(ty_m.id));
139-
}
140-
}
141-
}
142-
143102
fn add_to_index(ebml_w: ebml::writer, path: &[ident], &index: ~[entry<~str>],
144103
name: ident) {
145104
let mut full_path = ~[];
@@ -149,162 +108,12 @@ fn add_to_index(ebml_w: ebml::writer, path: &[ident], &index: ~[entry<~str>],
149108
pos: ebml_w.writer.tell()});
150109
}
151110

152-
fn encode_foreign_module_item_paths(ebml_w: ebml::writer, nmod: foreign_mod,
153-
path: ~[ident], &index: ~[entry<~str>]) {
154-
for nmod.items.each |nitem| {
155-
add_to_index(ebml_w, path, index, nitem.ident);
156-
do ebml_w.wr_tag(tag_paths_foreign_path) {
157-
encode_name(ebml_w, nitem.ident);
158-
encode_def_id(ebml_w, local_def(nitem.id));
159-
}
160-
}
161-
}
162-
163-
fn encode_class_item_paths(ebml_w: ebml::writer,
164-
fields: ~[@ast::struct_field],
165-
methods: ~[@ast::method],
166-
path: ~[ident],
167-
&index: ~[entry<~str>]) {
168-
for fields.each |field| {
169-
match field.node.kind {
170-
ast::named_field(ident, _, visibility) => {
171-
if visibility == private { again; }
172-
let (id, ident) = (field.node.id, ident);
173-
add_to_index(ebml_w, path, index, ident);
174-
encode_named_def_id(ebml_w, ident, local_def(id));
175-
}
176-
ast::unnamed_field => {}
177-
}
178-
}
179-
180-
for methods.each |method| {
181-
if method.vis == private { again; }
182-
let (id, ident) = (method.id, method.ident);
183-
add_to_index(ebml_w, path, index, ident);
184-
encode_named_def_id(ebml_w, ident, local_def(id));
185-
}
186-
}
187-
188-
fn encode_module_item_paths(ebml_w: ebml::writer, ecx: @encode_ctxt,
189-
module_: _mod, path: ~[ident],
190-
&index: ~[entry<~str>]) {
191-
for module_.items.each |it| {
192-
if !reachable(ecx, it.id) ||
193-
!ast_util::is_exported(it.ident, module_) { again; }
194-
if !ast_util::is_item_impl(it) {
195-
add_to_index(ebml_w, path, index, it.ident);
196-
}
197-
match it.node {
198-
item_const(_, _) => {
199-
encode_named_def_id(ebml_w, it.ident, local_def(it.id));
200-
}
201-
item_fn(_, tps, _) => {
202-
encode_named_def_id(ebml_w, it.ident, local_def(it.id));
203-
}
204-
item_mod(_mod) => {
205-
do ebml_w.wr_tag(tag_paths_data_mod) {
206-
encode_name_and_def_id(ebml_w, it.ident, it.id);
207-
encode_module_item_paths(ebml_w, ecx, _mod,
208-
vec::append_one(path, it.ident),
209-
index);
210-
}
211-
}
212-
item_foreign_mod(nmod) => {
213-
do ebml_w.wr_tag(tag_paths_data_mod) {
214-
encode_name_and_def_id(ebml_w, it.ident, it.id);
215-
encode_foreign_module_item_paths(
216-
ebml_w, nmod,
217-
vec::append_one(path, it.ident), index);
218-
}
219-
}
220-
item_ty(_, tps) => {
221-
do ebml_w.wr_tag(tag_paths_data_item) {
222-
encode_name_and_def_id(ebml_w, it.ident, it.id);
223-
}
224-
}
225-
item_class(struct_def, _) => {
226-
do ebml_w.wr_tag(tag_paths_data_item) {
227-
encode_name_and_def_id(ebml_w, it.ident, it.id);
228-
}
229-
do ebml_w.wr_tag(tag_paths) {
230-
// We add the same ident twice: for the
231-
// class and for its ctor
232-
add_to_index(ebml_w, path, index, it.ident);
233-
234-
encode_struct_def(ebml_w, struct_def, path, it.ident, index);
235-
}
236-
}
237-
item_enum(enum_definition, _) => {
238-
do ebml_w.wr_tag(tag_paths_data_item) {
239-
encode_name_and_def_id(ebml_w, it.ident, it.id);
240-
}
241-
encode_enum_variant_paths(ebml_w, enum_definition.variants,
242-
path, index);
243-
}
244-
item_trait(_, _, methods) => {
245-
do ebml_w.wr_tag(tag_paths_data_item) {
246-
encode_name_and_def_id(ebml_w, it.ident, it.id);
247-
}
248-
encode_trait_static_method_paths(ebml_w, methods, path, index);
249-
}
250-
item_impl(*) => {}
251-
item_mac(*) => fail ~"item macros unimplemented"
252-
}
253-
}
254-
}
255-
256-
fn encode_struct_def(ebml_w: ebml::writer,
257-
struct_def: @ast::struct_def,
258-
path: ~[ast::ident],
259-
ident: ast::ident,
260-
&index: ~[entry<~str>]) {
261-
match struct_def.ctor {
262-
none => {
263-
// Nothing to do.
264-
}
265-
some(ctor) => {
266-
encode_named_def_id(ebml_w, ident, local_def(ctor.node.id));
267-
}
268-
}
269-
270-
encode_class_item_paths(ebml_w,
271-
struct_def.fields,
272-
struct_def.methods,
273-
vec::append_one(path, ident),
274-
index);
275-
}
276-
277111
fn encode_trait_ref(ebml_w: ebml::writer, ecx: @encode_ctxt, t: @trait_ref) {
278112
ebml_w.start_tag(tag_impl_trait);
279113
encode_type(ecx, ebml_w, node_id_to_type(ecx.tcx, t.ref_id));
280114
ebml_w.end_tag();
281115
}
282116

283-
fn encode_item_paths(ebml_w: ebml::writer, ecx: @encode_ctxt, crate: @crate)
284-
-> ~[entry<~str>] {
285-
let mut index: ~[entry<~str>] = ~[];
286-
let mut path: ~[ident] = ~[];
287-
ebml_w.start_tag(tag_paths);
288-
encode_module_item_paths(ebml_w, ecx, crate.node.module, path, index);
289-
encode_reexport_paths(ebml_w, ecx, index);
290-
ebml_w.end_tag();
291-
return index;
292-
}
293-
294-
fn encode_reexport_paths(ebml_w: ebml::writer,
295-
ecx: @encode_ctxt, &index: ~[entry<~str>]) {
296-
for ecx.reexports.each |reexport| {
297-
let (path, def_id) = reexport;
298-
vec::push(index, {val: path, pos: ebml_w.writer.tell()});
299-
// List metadata ignores tag_paths_foreign_path things, but
300-
// other things look at it.
301-
ebml_w.start_tag(tag_paths_foreign_path);
302-
encode_name(ebml_w, @path);
303-
encode_def_id(ebml_w, def_id);
304-
ebml_w.end_tag();
305-
}
306-
}
307-
308117

309118
// Item info table encoding
310119
fn encode_family(ebml_w: ebml::writer, c: char) {
@@ -517,17 +326,6 @@ fn encode_visibility(ebml_w: ebml::writer, visibility: visibility) {
517326
});
518327
}
519328

520-
fn encode_region(ebml_w: ebml::writer, region: region) {
521-
match region.node {
522-
re_anon => {
523-
ebml_w.wr_tagged_str(tag_item_trait_method_self_ty, ~"");
524-
}
525-
re_named(ident) => {
526-
ebml_w.wr_tagged_str(tag_item_trait_method_self_ty, *ident);
527-
}
528-
}
529-
}
530-
531329
fn encode_self_type(ebml_w: ebml::writer, self_type: ast::self_ty_) {
532330
ebml_w.start_tag(tag_item_trait_method_self_ty);
533331

@@ -1277,13 +1075,6 @@ fn encode_metadata(parms: encode_parms, crate: @crate) -> ~[u8] {
12771075

12781076
encode_crate_deps(ebml_w, ecx.cstore);
12791077

1280-
// Encode and index the paths.
1281-
ebml_w.start_tag(tag_paths);
1282-
let paths_index = encode_item_paths(ebml_w, ecx, crate);
1283-
let paths_buckets = create_index(paths_index, hash_path);
1284-
encode_index(ebml_w, paths_buckets, write_str);
1285-
ebml_w.end_tag();
1286-
12871078
// Encode and index the items.
12881079
ebml_w.start_tag(tag_items);
12891080
let items_index = encode_info_for_items(ecx, ebml_w, crate);

0 commit comments

Comments
 (0)