@@ -987,40 +987,7 @@ impl<'ra: 'ast, 'ast, 'tcx> Visitor<'ast> for LateResolutionVisitor<'_, 'ast, 'r
987
987
) ;
988
988
}
989
989
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) )
1024
991
}
1025
992
fn visit_fn ( & mut self , fn_kind : FnKind < ' ast > , sp : Span , fn_id : NodeId ) {
1026
993
let previous_value = self . diag_metadata . current_function ;
@@ -3484,6 +3451,43 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
3484
3451
}
3485
3452
}
3486
3453
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
+
3487
3491
fn check_trait_item < F > (
3488
3492
& mut self ,
3489
3493
id : NodeId ,
0 commit comments