@@ -459,7 +459,8 @@ pub fn noop_visit_ty<T: MutVisitor>(ty: &mut P<Ty>, vis: &mut T) {
459459 vis. visit_mt ( mt) ;
460460 }
461461 TyKind :: BareFn ( bft) => {
462- let BareFnTy { unsafety : _, ext : _, generic_params, decl } = bft. deref_mut ( ) ;
462+ let BareFnTy { unsafety, ext : _, generic_params, decl } = bft. deref_mut ( ) ;
463+ visit_unsafety ( unsafety, vis) ;
463464 generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
464465 vis. visit_fn_decl ( decl) ;
465466 }
@@ -488,7 +489,8 @@ pub fn noop_visit_ty<T: MutVisitor>(ty: &mut P<Ty>, vis: &mut T) {
488489}
489490
490491pub fn noop_visit_foreign_mod < T : MutVisitor > ( foreign_mod : & mut ForeignMod , vis : & mut T ) {
491- let ForeignMod { unsafety : _, abi : _, items } = foreign_mod;
492+ let ForeignMod { unsafety, abi : _, items } = foreign_mod;
493+ visit_unsafety ( unsafety, vis) ;
492494 items. flat_map_in_place ( |item| vis. flat_map_foreign_item ( item) ) ;
493495}
494496
@@ -788,6 +790,38 @@ pub fn visit_interpolated<T: MutVisitor>(nt: &mut token::Nonterminal, vis: &mut
788790 }
789791}
790792
793+ // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
794+ pub fn visit_defaultness < T : MutVisitor > ( defaultness : & mut Defaultness , vis : & mut T ) {
795+ match defaultness {
796+ Defaultness :: Default ( span) => vis. visit_span ( span) ,
797+ Defaultness :: Final => { }
798+ }
799+ }
800+
801+ // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
802+ pub fn visit_unsafety < T : MutVisitor > ( unsafety : & mut Unsafe , vis : & mut T ) {
803+ match unsafety {
804+ Unsafe :: Yes ( span) => vis. visit_span ( span) ,
805+ Unsafe :: No => { }
806+ }
807+ }
808+
809+ // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
810+ pub fn visit_polarity < T : MutVisitor > ( polarity : & mut ImplPolarity , vis : & mut T ) {
811+ match polarity {
812+ ImplPolarity :: Positive => { }
813+ ImplPolarity :: Negative ( span) => vis. visit_span ( span) ,
814+ }
815+ }
816+
817+ // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
818+ pub fn visit_constness < T : MutVisitor > ( constness : & mut Const , vis : & mut T ) {
819+ match constness {
820+ Const :: Yes ( span) => vis. visit_span ( span) ,
821+ Const :: No => { }
822+ }
823+ }
824+
791825pub fn noop_visit_asyncness < T : MutVisitor > ( asyncness : & mut Async , vis : & mut T ) {
792826 match asyncness {
793827 Async :: Yes { span : _, closure_id, return_impl_trait_id } => {
@@ -955,25 +989,35 @@ pub fn noop_visit_item_kind<T: MutVisitor>(kind: &mut ItemKind, vis: &mut T) {
955989 match kind {
956990 ItemKind :: ExternCrate ( _orig_name) => { }
957991 ItemKind :: Use ( use_tree) => vis. visit_use_tree ( use_tree) ,
958- ItemKind :: Static ( ty, _, expr) | ItemKind :: Const ( _ , ty , expr ) => {
992+ ItemKind :: Static ( ty, _, expr) => {
959993 vis. visit_ty ( ty) ;
960994 visit_opt ( expr, |expr| vis. visit_expr ( expr) ) ;
961995 }
962- ItemKind :: Fn ( box FnKind ( _, sig, generics, body) ) => {
996+ ItemKind :: Const ( defaultness, ty, expr) => {
997+ visit_defaultness ( defaultness, vis) ;
998+ vis. visit_ty ( ty) ;
999+ visit_opt ( expr, |expr| vis. visit_expr ( expr) ) ;
1000+ }
1001+ ItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1002+ visit_defaultness ( defaultness, vis) ;
9631003 visit_fn_sig ( sig, vis) ;
9641004 vis. visit_generics ( generics) ;
9651005 visit_opt ( body, |body| vis. visit_block ( body) ) ;
9661006 }
967- ItemKind :: Mod ( _unsafety, mod_kind) => match mod_kind {
968- ModKind :: Loaded ( items, _inline, inner_span) => {
969- vis. visit_span ( inner_span) ;
970- items. flat_map_in_place ( |item| vis. flat_map_item ( item) ) ;
1007+ ItemKind :: Mod ( unsafety, mod_kind) => {
1008+ visit_unsafety ( unsafety, vis) ;
1009+ match mod_kind {
1010+ ModKind :: Loaded ( items, _inline, inner_span) => {
1011+ vis. visit_span ( inner_span) ;
1012+ items. flat_map_in_place ( |item| vis. flat_map_item ( item) ) ;
1013+ }
1014+ ModKind :: Unloaded => { }
9711015 }
972- ModKind :: Unloaded => { }
973- } ,
1016+ }
9741017 ItemKind :: ForeignMod ( nm) => vis. visit_foreign_mod ( nm) ,
9751018 ItemKind :: GlobalAsm ( asm) => noop_visit_inline_asm ( asm, vis) ,
976- ItemKind :: TyAlias ( box TyAliasKind ( _, generics, bounds, ty) ) => {
1019+ ItemKind :: TyAlias ( box TyAlias { defaultness, generics, bounds, ty } ) => {
1020+ visit_defaultness ( defaultness, vis) ;
9771021 vis. visit_generics ( generics) ;
9781022 visit_bounds ( bounds, vis) ;
9791023 visit_opt ( ty, |ty| vis. visit_ty ( ty) ) ;
@@ -986,22 +1030,27 @@ pub fn noop_visit_item_kind<T: MutVisitor>(kind: &mut ItemKind, vis: &mut T) {
9861030 vis. visit_variant_data ( variant_data) ;
9871031 vis. visit_generics ( generics) ;
9881032 }
989- ItemKind :: Impl ( box ImplKind {
990- unsafety : _,
991- polarity : _,
992- defaultness : _,
993- constness : _,
1033+ ItemKind :: Impl ( box Impl {
1034+ defaultness,
1035+ unsafety,
9941036 generics,
1037+ constness,
1038+ polarity,
9951039 of_trait,
9961040 self_ty,
9971041 items,
9981042 } ) => {
1043+ visit_defaultness ( defaultness, vis) ;
1044+ visit_unsafety ( unsafety, vis) ;
9991045 vis. visit_generics ( generics) ;
1046+ visit_constness ( constness, vis) ;
1047+ visit_polarity ( polarity, vis) ;
10001048 visit_opt ( of_trait, |trait_ref| vis. visit_trait_ref ( trait_ref) ) ;
10011049 vis. visit_ty ( self_ty) ;
10021050 items. flat_map_in_place ( |item| vis. flat_map_impl_item ( item) ) ;
10031051 }
1004- ItemKind :: Trait ( box TraitKind ( .., generics, bounds, items) ) => {
1052+ ItemKind :: Trait ( box Trait { unsafety, is_auto : _, generics, bounds, items } ) => {
1053+ visit_unsafety ( unsafety, vis) ;
10051054 vis. visit_generics ( generics) ;
10061055 visit_bounds ( bounds, vis) ;
10071056 items. flat_map_in_place ( |item| vis. flat_map_trait_item ( item) ) ;
@@ -1025,16 +1074,19 @@ pub fn noop_flat_map_assoc_item<T: MutVisitor>(
10251074 visitor. visit_vis ( vis) ;
10261075 visit_attrs ( attrs, visitor) ;
10271076 match kind {
1028- AssocItemKind :: Const ( _, ty, expr) => {
1077+ AssocItemKind :: Const ( defaultness, ty, expr) => {
1078+ visit_defaultness ( defaultness, visitor) ;
10291079 visitor. visit_ty ( ty) ;
10301080 visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
10311081 }
1032- AssocItemKind :: Fn ( box FnKind ( _, sig, generics, body) ) => {
1082+ AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1083+ visit_defaultness ( defaultness, visitor) ;
10331084 visitor. visit_generics ( generics) ;
10341085 visit_fn_sig ( sig, visitor) ;
10351086 visit_opt ( body, |body| visitor. visit_block ( body) ) ;
10361087 }
1037- AssocItemKind :: TyAlias ( box TyAliasKind ( _, generics, bounds, ty) ) => {
1088+ AssocItemKind :: TyAlias ( box TyAlias { defaultness, generics, bounds, ty } ) => {
1089+ visit_defaultness ( defaultness, visitor) ;
10381090 visitor. visit_generics ( generics) ;
10391091 visit_bounds ( bounds, visitor) ;
10401092 visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
@@ -1047,8 +1099,10 @@ pub fn noop_flat_map_assoc_item<T: MutVisitor>(
10471099}
10481100
10491101pub fn noop_visit_fn_header < T : MutVisitor > ( header : & mut FnHeader , vis : & mut T ) {
1050- let FnHeader { unsafety : _, asyncness, constness : _, ext : _ } = header;
1102+ let FnHeader { unsafety, asyncness, constness, ext : _ } = header;
1103+ visit_constness ( constness, vis) ;
10511104 vis. visit_asyncness ( asyncness) ;
1105+ visit_unsafety ( unsafety, vis) ;
10521106}
10531107
10541108// FIXME: Avoid visiting the crate as a `Mod` item, flat map only the inner items if possible,
@@ -1114,12 +1168,14 @@ pub fn noop_flat_map_foreign_item<T: MutVisitor>(
11141168 visitor. visit_ty ( ty) ;
11151169 visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
11161170 }
1117- ForeignItemKind :: Fn ( box FnKind ( _, sig, generics, body) ) => {
1171+ ForeignItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1172+ visit_defaultness ( defaultness, visitor) ;
11181173 visitor. visit_generics ( generics) ;
11191174 visit_fn_sig ( sig, visitor) ;
11201175 visit_opt ( body, |body| visitor. visit_block ( body) ) ;
11211176 }
1122- ForeignItemKind :: TyAlias ( box TyAliasKind ( _, generics, bounds, ty) ) => {
1177+ ForeignItemKind :: TyAlias ( box TyAlias { defaultness, generics, bounds, ty } ) => {
1178+ visit_defaultness ( defaultness, visitor) ;
11231179 visitor. visit_generics ( generics) ;
11241180 visit_bounds ( bounds, visitor) ;
11251181 visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
0 commit comments