@@ -194,19 +194,25 @@ impl<'a, 'b, 'tcx> visit::Visitor<'a> for DefCollector<'a, 'b, 'tcx> {
194
194
visit:: walk_use_tree ( self , use_tree, id) ;
195
195
}
196
196
197
- fn visit_foreign_item ( & mut self , fi : & ' a ForeignItem ) {
198
- let ( def_data, def_kind) = match fi. kind {
199
- ForeignItemKind :: Static ( _, mt, _) => {
200
- ( DefPathData :: ValueNs ( fi. ident . name ) , DefKind :: Static ( mt) )
201
- }
202
- ForeignItemKind :: Fn ( _) => ( DefPathData :: ValueNs ( fi. ident . name ) , DefKind :: Fn ) ,
203
- ForeignItemKind :: TyAlias ( _) => ( DefPathData :: TypeNs ( fi. ident . name ) , DefKind :: ForeignTy ) ,
204
- ForeignItemKind :: MacCall ( _) => return self . visit_macro_invoc ( fi. id ) ,
197
+ fn visit_foreign_item ( & mut self , foreign_item : & ' a ForeignItem ) {
198
+ let def_kind = match foreign_item. kind {
199
+ ForeignItemKind :: Static ( _, mt, _) => DefKind :: Static ( mt) ,
200
+ ForeignItemKind :: Fn ( _) => DefKind :: Fn ,
201
+ ForeignItemKind :: TyAlias ( _) => DefKind :: ForeignTy ,
202
+ ForeignItemKind :: MacCall ( _) => return self . visit_macro_invoc ( foreign_item. id ) ,
205
203
} ;
206
204
207
- let def = self . create_def ( fi. id , def_data, def_kind, fi. span ) ;
205
+ // FIXME: The namespace is incorrect for foreign types.
206
+ let def = self . create_def (
207
+ foreign_item. id ,
208
+ DefPathData :: ValueNs ( foreign_item. ident . name ) ,
209
+ def_kind,
210
+ foreign_item. span ,
211
+ ) ;
208
212
209
- self . with_parent ( def, |this| visit:: walk_foreign_item ( this, fi) ) ;
213
+ self . with_parent ( def, |this| {
214
+ visit:: walk_foreign_item ( this, foreign_item) ;
215
+ } ) ;
210
216
}
211
217
212
218
fn visit_variant ( & mut self , v : & ' a Variant ) {
0 commit comments