@@ -194,25 +194,19 @@ 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 , 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 ) ,
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 ) ,
203
205
} ;
204
206
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
- ) ;
207
+ let def = self . create_def ( fi. id , def_data, def_kind, fi. span ) ;
212
208
213
- self . with_parent ( def, |this| {
214
- visit:: walk_foreign_item ( this, foreign_item) ;
215
- } ) ;
209
+ self . with_parent ( def, |this| visit:: walk_foreign_item ( this, fi) ) ;
216
210
}
217
211
218
212
fn visit_variant ( & mut self , v : & ' a Variant ) {
0 commit comments