6767use crate :: hir:: * ;
6868use rustc_ast:: walk_list;
6969use rustc_ast:: { Attribute , Label } ;
70+ use rustc_span:: def_id:: LocalDefId ;
7071use rustc_span:: symbol:: { Ident , Symbol } ;
7172use rustc_span:: Span ;
7273
@@ -364,7 +365,7 @@ pub trait Visitor<'v>: Sized {
364365 fn visit_fn_decl ( & mut self , fd : & ' v FnDecl < ' v > ) {
365366 walk_fn_decl ( self , fd)
366367 }
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 ) {
368369 walk_fn ( self , fk, fd, b, id)
369370 }
370371 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>) {
468469 visitor. visit_ty ( typ) ;
469470 visitor. visit_nested_body ( body) ;
470471 }
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+ }
478482 ItemKind :: Macro ( ..) => {
479483 visitor. visit_id ( item. hir_id ( ) ) ;
480484 }
@@ -733,7 +737,7 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr<'v>)
733737 walk_list ! ( visitor, visit_arm, arms) ;
734738 }
735739 ExprKind :: Closure ( & Closure {
736- def_id : _ ,
740+ def_id,
737741 binder : _,
738742 bound_generic_params,
739743 fn_decl,
@@ -745,7 +749,7 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr<'v>)
745749 constness : _,
746750 } ) => {
747751 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 )
749753 }
750754 ExprKind :: Block ( ref block, ref opt_label) => {
751755 walk_list ! ( visitor, visit_label, opt_label) ;
@@ -923,9 +927,8 @@ pub fn walk_fn<'v, V: Visitor<'v>>(
923927 function_kind : FnKind < ' v > ,
924928 function_declaration : & ' v FnDecl < ' v > ,
925929 body_id : BodyId ,
926- id : HirId ,
930+ _ : LocalDefId ,
927931) {
928- visitor. visit_id ( id) ;
929932 visitor. visit_fn_decl ( function_declaration) ;
930933 walk_fn_kind ( visitor, function_kind) ;
931934 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
953956 let TraitItem { ident, generics, ref defaultness, ref kind, span, owner_id : _ } = * trait_item;
954957 let hir_id = trait_item. hir_id ( ) ;
955958 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) ;
958962 match * kind {
959963 TraitItemKind :: Const ( ref ty, default) => {
960- visitor. visit_id ( hir_id) ;
961964 visitor. visit_ty ( ty) ;
962965 walk_list ! ( visitor, visit_nested_body, default ) ;
963966 }
964967 TraitItemKind :: Fn ( ref sig, TraitFn :: Required ( param_names) ) => {
965- visitor. visit_id ( hir_id) ;
966968 visitor. visit_fn_decl ( sig. decl ) ;
967969 for & param_name in param_names {
968970 visitor. visit_ident ( param_name) ;
969971 }
970972 }
971973 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+ ) ;
973981 }
974982 TraitItemKind :: Type ( bounds, ref default) => {
975- visitor. visit_id ( hir_id) ;
976983 walk_list ! ( visitor, visit_param_bound, bounds) ;
977984 walk_list ! ( visitor, visit_ty, default ) ;
978985 }
@@ -1002,9 +1009,9 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
10021009 visitor. visit_ident ( ident) ;
10031010 visitor. visit_generics ( generics) ;
10041011 visitor. visit_defaultness ( defaultness) ;
1012+ visitor. visit_id ( impl_item. hir_id ( ) ) ;
10051013 match * kind {
10061014 ImplItemKind :: Const ( ref ty, body) => {
1007- visitor. visit_id ( impl_item. hir_id ( ) ) ;
10081015 visitor. visit_ty ( ty) ;
10091016 visitor. visit_nested_body ( body) ;
10101017 }
@@ -1014,11 +1021,10 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
10141021 sig. decl ,
10151022 body_id,
10161023 impl_item. span ,
1017- impl_item. hir_id ( ) ,
1024+ impl_item. owner_id . def_id ,
10181025 ) ;
10191026 }
10201027 ImplItemKind :: Type ( ref ty) => {
1021- visitor. visit_id ( impl_item. hir_id ( ) ) ;
10221028 visitor. visit_ty ( ty) ;
10231029 }
10241030 }
0 commit comments