@@ -174,7 +174,7 @@ fn item_symbol(item: ebml::Doc) -> ~str {
174
174
175
175
fn item_parent_item ( d : ebml:: Doc ) -> Option < ast:: def_id > {
176
176
for reader:: tagged_docs( d, tag_items_data_parent_item) |did| {
177
- return Some ( reader:: with_doc_data( did, parse_def_id) ) ;
177
+ return Some ( reader:: with_doc_data( did, |d| parse_def_id( d ) ) ) ;
178
178
}
179
179
None
180
180
}
@@ -195,7 +195,8 @@ fn item_reqd_and_translated_parent_item(cnum: ast::crate_num,
195
195
196
196
fn item_def_id ( d : ebml:: Doc , cdata : cmd ) -> ast:: def_id {
197
197
let tagdoc = reader:: get_doc ( d, tag_def_id) ;
198
- return translate_def_id ( cdata, reader:: with_doc_data ( tagdoc, parse_def_id) ) ;
198
+ return translate_def_id ( cdata, reader:: with_doc_data ( tagdoc,
199
+ |d| parse_def_id ( d) ) ) ;
199
200
}
200
201
201
202
fn each_reexport ( d : ebml:: Doc , f : & fn ( ebml:: Doc ) -> bool ) -> bool {
@@ -215,13 +216,13 @@ fn variant_disr_val(d: ebml::Doc) -> Option<int> {
215
216
216
217
fn doc_type ( doc : ebml:: Doc , tcx : ty:: ctxt , cdata : cmd ) -> ty:: t {
217
218
let tp = reader:: get_doc ( doc, tag_items_data_item_type) ;
218
- parse_ty_data ( * tp. data , cdata. cnum , tp. start , tcx,
219
+ parse_ty_data ( tp. data , cdata. cnum , tp. start , tcx,
219
220
|_, did| translate_def_id ( cdata, did) )
220
221
}
221
222
222
223
fn doc_method_fty ( doc : ebml:: Doc , tcx : ty:: ctxt , cdata : cmd ) -> ty:: BareFnTy {
223
224
let tp = reader:: get_doc ( doc, tag_item_method_fty) ;
224
- parse_bare_fn_ty_data ( * tp. data , cdata. cnum , tp. start , tcx,
225
+ parse_bare_fn_ty_data ( tp. data , cdata. cnum , tp. start , tcx,
225
226
|_, did| translate_def_id ( cdata, did) )
226
227
}
227
228
@@ -230,7 +231,7 @@ fn doc_transformed_self_ty(doc: ebml::Doc,
230
231
cdata : cmd ) -> Option < ty:: t >
231
232
{
232
233
do reader:: maybe_get_doc ( doc, tag_item_method_transformed_self_ty) . map |tp| {
233
- parse_ty_data ( * tp. data , cdata. cnum , tp. start , tcx,
234
+ parse_ty_data ( tp. data , cdata. cnum , tp. start , tcx,
234
235
|_, did| translate_def_id ( cdata, did) )
235
236
}
236
237
}
@@ -241,7 +242,7 @@ pub fn item_type(_item_id: ast::def_id, item: ebml::Doc,
241
242
}
242
243
243
244
fn doc_trait_ref ( doc : ebml:: Doc , tcx : ty:: ctxt , cdata : cmd ) -> ty:: TraitRef {
244
- parse_trait_ref_data ( * doc. data , cdata. cnum , doc. start , tcx,
245
+ parse_trait_ref_data ( doc. data , cdata. cnum , doc. start , tcx,
245
246
|_, did| translate_def_id ( cdata, did) )
246
247
}
247
248
@@ -256,7 +257,7 @@ fn item_ty_param_defs(item: ebml::Doc, tcx: ty::ctxt, cdata: cmd,
256
257
let mut bounds = ~[ ] ;
257
258
for reader:: tagged_docs( item, tag) |p| {
258
259
let bd = parse_type_param_def_data (
259
- * p. data , p. start , cdata. cnum , tcx,
260
+ p. data , p. start , cdata. cnum , tcx,
260
261
|_, did| translate_def_id ( cdata, did) ) ;
261
262
bounds. push ( bd) ;
262
263
}
@@ -281,7 +282,7 @@ fn enum_variant_ids(item: ebml::Doc, cdata: cmd) -> ~[ast::def_id] {
281
282
let mut ids: ~[ ast:: def_id ] = ~[ ] ;
282
283
let v = tag_items_data_item_variant;
283
284
for reader:: tagged_docs( item, v) |p| {
284
- let ext = reader:: with_doc_data ( p, parse_def_id) ;
285
+ let ext = reader:: with_doc_data ( p, |d| parse_def_id ( d ) ) ;
285
286
ids. push ( ast:: def_id { crate : cdata. cnum , node : ext. node } ) ;
286
287
} ;
287
288
return ids;
@@ -412,9 +413,15 @@ pub fn get_impl_trait(cdata: cmd,
412
413
tcx : ty:: ctxt ) -> Option < @ty:: TraitRef >
413
414
{
414
415
let item_doc = lookup_item ( id, cdata. data ) ;
415
- do reader:: maybe_get_doc ( item_doc, tag_item_trait_ref) . map |& tp| {
416
- @doc_trait_ref ( tp, tcx, cdata)
417
- }
416
+ let mut result = None ;
417
+ for reader:: tagged_docs( item_doc, tag_item_trait_ref) |tp| {
418
+ let trait_ref =
419
+ @parse_trait_ref_data ( tp. data , cdata. cnum , tp. start , tcx,
420
+ |_, did| translate_def_id ( cdata, did) ) ;
421
+ result = Some ( trait_ref) ;
422
+ break ;
423
+ } ;
424
+ result
418
425
}
419
426
420
427
pub fn get_impl_method ( intr : @ident_interner , cdata : cmd , id : ast:: node_id ,
@@ -423,7 +430,7 @@ pub fn get_impl_method(intr: @ident_interner, cdata: cmd, id: ast::node_id,
423
430
let mut found = None ;
424
431
for reader:: tagged_docs( find_item( id, items) , tag_item_impl_method)
425
432
|mid| {
426
- let m_did = reader:: with_doc_data ( mid, parse_def_id) ;
433
+ let m_did = reader:: with_doc_data ( mid, |d| parse_def_id ( d ) ) ;
427
434
if item_name ( intr, find_item ( m_did. node , items) ) == name {
428
435
found = Some ( translate_def_id ( cdata, m_did) ) ;
429
436
}
@@ -661,7 +668,7 @@ fn item_impl_methods(intr: @ident_interner, cdata: cmd, item: ebml::Doc,
661
668
base_tps : uint ) -> ~[ @resolve:: MethodInfo ] {
662
669
let mut rslt = ~[ ] ;
663
670
for reader:: tagged_docs( item, tag_item_impl_method) |doc| {
664
- let m_did = reader:: with_doc_data ( doc, parse_def_id) ;
671
+ let m_did = reader:: with_doc_data ( doc, |d| parse_def_id ( d ) ) ;
665
672
let mth_item = lookup_item ( m_did. node , cdata. data ) ;
666
673
let explicit_self = get_explicit_self ( mth_item) ;
667
674
rslt. push ( @resolve:: MethodInfo {
@@ -683,7 +690,7 @@ pub fn get_impls_for_mod(intr: @ident_interner,
683
690
let mod_item = lookup_item ( m_id, data) ;
684
691
let mut result = ~[ ] ;
685
692
for reader:: tagged_docs( mod_item, tag_mod_impl) |doc| {
686
- let did = reader:: with_doc_data ( doc, parse_def_id) ;
693
+ let did = reader:: with_doc_data ( doc, |d| parse_def_id ( d ) ) ;
687
694
let local_did = translate_def_id ( cdata, did) ;
688
695
debug ! ( "(get impls for mod) getting did %? for '%?'" ,
689
696
local_did, name) ;
0 commit comments