@@ -987,40 +987,7 @@ impl<'ra: 'ast, 'ast, 'tcx> Visitor<'ast> for LateResolutionVisitor<'_, 'ast, 'r
987987 ) ;
988988 }
989989 fn visit_foreign_item ( & mut self , foreign_item : & ' ast ForeignItem ) {
990- self . resolve_doc_links ( & foreign_item. attrs , MaybeExported :: Ok ( foreign_item. id ) ) ;
991- let def_kind = self . r . local_def_kind ( foreign_item. id ) ;
992- match foreign_item. kind {
993- ForeignItemKind :: TyAlias ( box TyAlias { ref generics, .. } ) => {
994- self . with_generic_param_rib (
995- & generics. params ,
996- RibKind :: Item ( HasGenericParams :: Yes ( generics. span ) , def_kind) ,
997- LifetimeRibKind :: Generics {
998- binder : foreign_item. id ,
999- kind : LifetimeBinderKind :: Item ,
1000- span : generics. span ,
1001- } ,
1002- |this| visit:: walk_item ( this, foreign_item) ,
1003- ) ;
1004- }
1005- ForeignItemKind :: Fn ( box Fn { ref generics, .. } ) => {
1006- self . with_generic_param_rib (
1007- & generics. params ,
1008- RibKind :: Item ( HasGenericParams :: Yes ( generics. span ) , def_kind) ,
1009- LifetimeRibKind :: Generics {
1010- binder : foreign_item. id ,
1011- kind : LifetimeBinderKind :: Function ,
1012- span : generics. span ,
1013- } ,
1014- |this| visit:: walk_item ( this, foreign_item) ,
1015- ) ;
1016- }
1017- ForeignItemKind :: Static ( ..) => {
1018- self . with_static_rib ( def_kind, |this| visit:: walk_item ( this, foreign_item) )
1019- }
1020- ForeignItemKind :: MacCall ( ..) => {
1021- panic ! ( "unexpanded macro in resolve!" )
1022- }
1023- }
990+ self . with_owner ( foreign_item. id , |this| this. resolve_foreign_item ( foreign_item) )
1024991 }
1025992 fn visit_fn ( & mut self , fn_kind : FnKind < ' ast > , sp : Span , fn_id : NodeId ) {
1026993 let previous_value = self . diag_metadata . current_function ;
@@ -3484,6 +3451,43 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
34843451 }
34853452 }
34863453
3454+ fn resolve_foreign_item ( & mut self , foreign_item : & ' ast ForeignItem ) {
3455+ self . resolve_doc_links ( & foreign_item. attrs , MaybeExported :: Ok ( foreign_item. id ) ) ;
3456+ let def_kind = self . r . local_def_kind ( foreign_item. id ) ;
3457+ match foreign_item. kind {
3458+ ForeignItemKind :: TyAlias ( box TyAlias { ref generics, .. } ) => {
3459+ self . with_generic_param_rib (
3460+ & generics. params ,
3461+ RibKind :: Item ( HasGenericParams :: Yes ( generics. span ) , def_kind) ,
3462+ LifetimeRibKind :: Generics {
3463+ binder : foreign_item. id ,
3464+ kind : LifetimeBinderKind :: Item ,
3465+ span : generics. span ,
3466+ } ,
3467+ |this| visit:: walk_item ( this, foreign_item) ,
3468+ ) ;
3469+ }
3470+ ForeignItemKind :: Fn ( box Fn { ref generics, .. } ) => {
3471+ self . with_generic_param_rib (
3472+ & generics. params ,
3473+ RibKind :: Item ( HasGenericParams :: Yes ( generics. span ) , def_kind) ,
3474+ LifetimeRibKind :: Generics {
3475+ binder : foreign_item. id ,
3476+ kind : LifetimeBinderKind :: Function ,
3477+ span : generics. span ,
3478+ } ,
3479+ |this| visit:: walk_item ( this, foreign_item) ,
3480+ ) ;
3481+ }
3482+ ForeignItemKind :: Static ( ..) => {
3483+ self . with_static_rib ( def_kind, |this| visit:: walk_item ( this, foreign_item) )
3484+ }
3485+ ForeignItemKind :: MacCall ( ..) => {
3486+ panic ! ( "unexpanded macro in resolve!" )
3487+ }
3488+ }
3489+ }
3490+
34873491 fn check_trait_item < F > (
34883492 & mut self ,
34893493 id : NodeId ,
0 commit comments