@@ -118,15 +118,16 @@ fn item_symbol(item: ebml::doc) -> str {
118
118
fn item_parent_item ( d : ebml:: doc ) -> option < ast:: def_id > {
119
119
let mut found = none;
120
120
do ebml:: tagged_docs ( d, tag_items_data_parent_item) |did| {
121
- found = some ( parse_def_id ( ebml:: doc_data ( did) ) ) ;
121
+ found = some ( ebml:: with_doc_data ( did, |d| parse_def_id ( d ) ) ) ;
122
122
}
123
123
found
124
124
}
125
125
126
126
// XXX: This has nothing to do with classes.
127
127
fn class_member_id ( d : ebml:: doc , cdata : cmd ) -> ast:: def_id {
128
128
let tagdoc = ebml:: get_doc ( d, tag_def_id) ;
129
- ret translate_def_id ( cdata, parse_def_id ( ebml:: doc_data ( tagdoc) ) ) ;
129
+ ret translate_def_id ( cdata, ebml:: with_doc_data ( tagdoc,
130
+ |d| parse_def_id ( d) ) ) ;
130
131
}
131
132
132
133
fn field_mutability ( d : ebml:: doc ) -> ast:: class_mutability {
@@ -207,7 +208,7 @@ fn enum_variant_ids(item: ebml::doc, cdata: cmd) -> ~[ast::def_id] {
207
208
let mut ids: ~[ ast:: def_id ] = ~[ ] ;
208
209
let v = tag_items_data_item_variant;
209
210
do ebml:: tagged_docs ( item, v) |p| {
210
- let ext = parse_def_id ( ebml:: doc_data ( p ) ) ;
211
+ let ext = ebml:: with_doc_data ( p , |d| parse_def_id ( d ) ) ;
211
212
vec:: push ( ids, { crate : cdata. cnum , node: ext. node } ) ;
212
213
} ;
213
214
ret ids;
@@ -240,7 +241,7 @@ fn resolve_path(path: ~[ast::ident], data: @~[u8]) -> ~[ast::def_id] {
240
241
#debug ( "resolve_path: looking up %s" , s) ;
241
242
for lookup_hash( paths, eqer, hash_path( s) ) . each |doc| {
242
243
let did_doc = ebml:: get_doc ( doc, tag_def_id) ;
243
- vec:: push ( result, parse_def_id ( ebml:: doc_data ( did_doc) ) ) ;
244
+ vec:: push ( result, ebml:: with_doc_data ( did_doc, |d| parse_def_id ( d ) ) ) ;
244
245
}
245
246
ret result;
246
247
}
@@ -337,7 +338,7 @@ fn get_impl_method(cdata: cmd, id: ast::node_id,
337
338
let items = ebml:: get_doc ( ebml:: doc ( cdata. data ) , tag_items) ;
338
339
let mut found = none;
339
340
do ebml:: tagged_docs ( find_item ( id, items) , tag_item_impl_method) |mid| {
340
- let m_did = parse_def_id ( ebml:: doc_data ( mid) ) ;
341
+ let m_did = ebml:: with_doc_data ( mid, |d| parse_def_id ( d ) ) ;
341
342
if item_name ( find_item ( m_did. node , items) ) == name {
342
343
found = some ( translate_def_id ( cdata, m_did) ) ;
343
344
}
@@ -375,7 +376,7 @@ fn class_dtor(cdata: cmd, id: ast::node_id) -> option<ast::def_id> {
375
376
} ;
376
377
do ebml:: tagged_docs ( cls_items, tag_item_dtor) |doc| {
377
378
let doc1 = ebml:: get_doc ( doc, tag_def_id) ;
378
- let did = parse_def_id ( ebml:: doc_data ( doc1) ) ;
379
+ let did = ebml:: with_doc_data ( doc1, |d| parse_def_id ( d ) ) ;
379
380
found = some ( translate_def_id ( cdata, did) ) ;
380
381
} ;
381
382
found
@@ -558,7 +559,7 @@ fn item_impl_methods(cdata: cmd, item: ebml::doc, base_tps: uint)
558
559
-> ~[ @method_info ] {
559
560
let mut rslt = ~[ ] ;
560
561
do ebml:: tagged_docs ( item, tag_item_impl_method) |doc| {
561
- let m_did = parse_def_id ( ebml:: doc_data ( doc) ) ;
562
+ let m_did = ebml:: with_doc_data ( doc, |d| parse_def_id ( d ) ) ;
562
563
let mth_item = lookup_item ( m_did. node , cdata. data ) ;
563
564
vec:: push ( rslt, @{ did: translate_def_id ( cdata, m_did) ,
564
565
/* FIXME (maybe #2323) tjc: take a look at this. */
@@ -578,7 +579,7 @@ fn get_impls_for_mod(cdata: cmd,
578
579
let mod_item = lookup_item ( m_id, data) ;
579
580
let mut result = ~[ ] ;
580
581
do ebml:: tagged_docs ( mod_item, tag_mod_impl) |doc| {
581
- let did = parse_def_id ( ebml:: doc_data ( doc) ) ;
582
+ let did = ebml:: with_doc_data ( doc, |d| parse_def_id ( d ) ) ;
582
583
let local_did = translate_def_id ( cdata, did) ;
583
584
// The impl may be defined in a different crate. Ask the caller
584
585
// to give us the metadata
@@ -839,7 +840,7 @@ fn iter_crate_items(bytes: @~[u8], proc: fn(str, ast::def_id)) {
839
840
let data = read_path ( elt) ;
840
841
let { tag: _ , doc : def } = ebml:: doc_at ( bytes, data. pos ) ;
841
842
let did_doc = ebml:: get_doc ( def, tag_def_id) ;
842
- let did = parse_def_id ( ebml:: doc_data ( did_doc) ) ;
843
+ let did = ebml:: with_doc_data ( did_doc, |d| parse_def_id ( d ) ) ;
843
844
proc ( data. path , did) ;
844
845
} ;
845
846
} ;
0 commit comments