@@ -27,19 +27,19 @@ struct DiagnosticItemCollector<'tcx> {
27
27
28
28
impl < ' v , ' tcx > ItemLikeVisitor < ' v > for DiagnosticItemCollector < ' tcx > {
29
29
fn visit_item ( & mut self , item : & hir:: Item < ' _ > ) {
30
- self . observe_item ( & item . attrs , item. def_id ) ;
30
+ self . observe_item ( item. def_id ) ;
31
31
}
32
32
33
33
fn visit_trait_item ( & mut self , trait_item : & hir:: TraitItem < ' _ > ) {
34
- self . observe_item ( & trait_item . attrs , trait_item. def_id ) ;
34
+ self . observe_item ( trait_item. def_id ) ;
35
35
}
36
36
37
37
fn visit_impl_item ( & mut self , impl_item : & hir:: ImplItem < ' _ > ) {
38
- self . observe_item ( & impl_item . attrs , impl_item. def_id ) ;
38
+ self . observe_item ( impl_item. def_id ) ;
39
39
}
40
40
41
41
fn visit_foreign_item ( & mut self , foreign_item : & hir:: ForeignItem < ' _ > ) {
42
- self . observe_item ( foreign_item. attrs , foreign_item . def_id ) ;
42
+ self . observe_item ( foreign_item. def_id ) ;
43
43
}
44
44
}
45
45
@@ -48,7 +48,9 @@ impl<'tcx> DiagnosticItemCollector<'tcx> {
48
48
DiagnosticItemCollector { tcx, items : Default :: default ( ) }
49
49
}
50
50
51
- fn observe_item ( & mut self , attrs : & [ ast:: Attribute ] , def_id : LocalDefId ) {
51
+ fn observe_item ( & mut self , def_id : LocalDefId ) {
52
+ let hir_id = self . tcx . hir ( ) . local_def_id_to_hir_id ( def_id) ;
53
+ let attrs = self . tcx . hir ( ) . attrs ( hir_id) ;
52
54
if let Some ( name) = extract ( & self . tcx . sess , attrs) {
53
55
// insert into our table
54
56
collect_item ( self . tcx , & mut self . items , name, def_id. to_def_id ( ) ) ;
@@ -105,7 +107,7 @@ fn collect<'tcx>(tcx: TyCtxt<'tcx>) -> FxHashMap<Symbol, DefId> {
105
107
tcx. hir ( ) . krate ( ) . visit_all_item_likes ( & mut collector) ;
106
108
107
109
for m in tcx. hir ( ) . krate ( ) . exported_macros {
108
- collector. observe_item ( m. attrs , m . def_id ) ;
110
+ collector. observe_item ( m. def_id ) ;
109
111
}
110
112
111
113
collector. items
0 commit comments