@@ -38,7 +38,9 @@ impl<'v, 'tcx> ItemLikeVisitor<'v> for DiagnosticItemCollector<'tcx> {
38
38
self . observe_item ( & impl_item. attrs , impl_item. hir_id ) ;
39
39
}
40
40
41
- fn visit_foreign_item ( & mut self , _foreign_item : & hir:: ForeignItem < ' _ > ) { }
41
+ fn visit_foreign_item ( & mut self , foreign_item : & hir:: ForeignItem < ' _ > ) {
42
+ self . observe_item ( foreign_item. attrs , foreign_item. hir_id ) ;
43
+ }
42
44
}
43
45
44
46
impl < ' tcx > DiagnosticItemCollector < ' tcx > {
@@ -102,18 +104,6 @@ fn collect<'tcx>(tcx: TyCtxt<'tcx>) -> FxHashMap<Symbol, DefId> {
102
104
103
105
// Collect diagnostic items in this crate.
104
106
tcx. hir ( ) . krate ( ) . visit_all_item_likes ( & mut collector) ;
105
- // FIXME(visit_all_item_likes): Foreign items are not visited
106
- // here, so we have to manually look at them for now.
107
- for ( _, foreign_module) in tcx. foreign_modules ( LOCAL_CRATE ) . iter ( ) {
108
- for & foreign_item in foreign_module. foreign_items . iter ( ) {
109
- match tcx. hir ( ) . get ( tcx. hir ( ) . local_def_id_to_hir_id ( foreign_item. expect_local ( ) ) ) {
110
- hir:: Node :: ForeignItem ( item) => {
111
- collector. observe_item ( item. attrs , item. hir_id ) ;
112
- }
113
- item => bug ! ( "unexpected foreign item {:?}" , item) ,
114
- }
115
- }
116
- }
117
107
118
108
for m in tcx. hir ( ) . krate ( ) . exported_macros {
119
109
collector. observe_item ( m. attrs , m. hir_id ) ;
0 commit comments