67
67
use crate :: hir:: * ;
68
68
use rustc_ast:: walk_list;
69
69
use rustc_ast:: { Attribute , Label } ;
70
+ use rustc_span:: def_id:: LocalDefId ;
70
71
use rustc_span:: symbol:: { Ident , Symbol } ;
71
72
use rustc_span:: Span ;
72
73
@@ -364,7 +365,7 @@ pub trait Visitor<'v>: Sized {
364
365
fn visit_fn_decl ( & mut self , fd : & ' v FnDecl < ' v > ) {
365
366
walk_fn_decl ( self , fd)
366
367
}
367
- fn visit_fn ( & mut self , fk : FnKind < ' v > , fd : & ' v FnDecl < ' v > , b : BodyId , _: Span , id : HirId ) {
368
+ fn visit_fn ( & mut self , fk : FnKind < ' v > , fd : & ' v FnDecl < ' v > , b : BodyId , _: Span , id : LocalDefId ) {
368
369
walk_fn ( self , fk, fd, b, id)
369
370
}
370
371
fn visit_use ( & mut self , path : & ' v UsePath < ' v > , hir_id : HirId ) {
@@ -468,13 +469,16 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item<'v>) {
468
469
visitor. visit_ty ( typ) ;
469
470
visitor. visit_nested_body ( body) ;
470
471
}
471
- ItemKind :: Fn ( ref sig, ref generics, body_id) => visitor. visit_fn (
472
- FnKind :: ItemFn ( item. ident , generics, sig. header ) ,
473
- sig. decl ,
474
- body_id,
475
- item. span ,
476
- item. hir_id ( ) ,
477
- ) ,
472
+ ItemKind :: Fn ( ref sig, ref generics, body_id) => {
473
+ visitor. visit_id ( item. hir_id ( ) ) ;
474
+ visitor. visit_fn (
475
+ FnKind :: ItemFn ( item. ident , generics, sig. header ) ,
476
+ sig. decl ,
477
+ body_id,
478
+ item. span ,
479
+ item. owner_id . def_id ,
480
+ )
481
+ }
478
482
ItemKind :: Macro ( ..) => {
479
483
visitor. visit_id ( item. hir_id ( ) ) ;
480
484
}
@@ -733,7 +737,7 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr<'v>)
733
737
walk_list ! ( visitor, visit_arm, arms) ;
734
738
}
735
739
ExprKind :: Closure ( & Closure {
736
- def_id : _ ,
740
+ def_id,
737
741
binder : _,
738
742
bound_generic_params,
739
743
fn_decl,
@@ -745,7 +749,7 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr<'v>)
745
749
constness : _,
746
750
} ) => {
747
751
walk_list ! ( visitor, visit_generic_param, bound_generic_params) ;
748
- visitor. visit_fn ( FnKind :: Closure , fn_decl, body, expression. span , expression . hir_id )
752
+ visitor. visit_fn ( FnKind :: Closure , fn_decl, body, expression. span , def_id )
749
753
}
750
754
ExprKind :: Block ( ref block, ref opt_label) => {
751
755
walk_list ! ( visitor, visit_label, opt_label) ;
@@ -923,9 +927,8 @@ pub fn walk_fn<'v, V: Visitor<'v>>(
923
927
function_kind : FnKind < ' v > ,
924
928
function_declaration : & ' v FnDecl < ' v > ,
925
929
body_id : BodyId ,
926
- id : HirId ,
930
+ _ : LocalDefId ,
927
931
) {
928
- visitor. visit_id ( id) ;
929
932
visitor. visit_fn_decl ( function_declaration) ;
930
933
walk_fn_kind ( visitor, function_kind) ;
931
934
visitor. visit_nested_body ( body_id)
@@ -953,26 +956,30 @@ pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v Trai
953
956
let TraitItem { ident, generics, ref defaultness, ref kind, span, owner_id : _ } = * trait_item;
954
957
let hir_id = trait_item. hir_id ( ) ;
955
958
visitor. visit_ident ( ident) ;
956
- visitor. visit_generics ( generics) ;
957
- visitor. visit_defaultness ( defaultness) ;
959
+ visitor. visit_generics ( & generics) ;
960
+ visitor. visit_defaultness ( & defaultness) ;
961
+ visitor. visit_id ( hir_id) ;
958
962
match * kind {
959
963
TraitItemKind :: Const ( ref ty, default) => {
960
- visitor. visit_id ( hir_id) ;
961
964
visitor. visit_ty ( ty) ;
962
965
walk_list ! ( visitor, visit_nested_body, default ) ;
963
966
}
964
967
TraitItemKind :: Fn ( ref sig, TraitFn :: Required ( param_names) ) => {
965
- visitor. visit_id ( hir_id) ;
966
968
visitor. visit_fn_decl ( sig. decl ) ;
967
969
for & param_name in param_names {
968
970
visitor. visit_ident ( param_name) ;
969
971
}
970
972
}
971
973
TraitItemKind :: Fn ( ref sig, TraitFn :: Provided ( body_id) ) => {
972
- visitor. visit_fn ( FnKind :: Method ( ident, sig) , sig. decl , body_id, span, hir_id) ;
974
+ visitor. visit_fn (
975
+ FnKind :: Method ( ident, sig) ,
976
+ sig. decl ,
977
+ body_id,
978
+ span,
979
+ trait_item. owner_id . def_id ,
980
+ ) ;
973
981
}
974
982
TraitItemKind :: Type ( bounds, ref default) => {
975
- visitor. visit_id ( hir_id) ;
976
983
walk_list ! ( visitor, visit_param_bound, bounds) ;
977
984
walk_list ! ( visitor, visit_ty, default ) ;
978
985
}
@@ -1002,9 +1009,9 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
1002
1009
visitor. visit_ident ( ident) ;
1003
1010
visitor. visit_generics ( generics) ;
1004
1011
visitor. visit_defaultness ( defaultness) ;
1012
+ visitor. visit_id ( impl_item. hir_id ( ) ) ;
1005
1013
match * kind {
1006
1014
ImplItemKind :: Const ( ref ty, body) => {
1007
- visitor. visit_id ( impl_item. hir_id ( ) ) ;
1008
1015
visitor. visit_ty ( ty) ;
1009
1016
visitor. visit_nested_body ( body) ;
1010
1017
}
@@ -1014,11 +1021,10 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
1014
1021
sig. decl ,
1015
1022
body_id,
1016
1023
impl_item. span ,
1017
- impl_item. hir_id ( ) ,
1024
+ impl_item. owner_id . def_id ,
1018
1025
) ;
1019
1026
}
1020
1027
ImplItemKind :: Type ( ref ty) => {
1021
- visitor. visit_id ( impl_item. hir_id ( ) ) ;
1022
1028
visitor. visit_ty ( ty) ;
1023
1029
}
1024
1030
}
0 commit comments