@@ -459,7 +459,8 @@ pub fn noop_visit_ty<T: MutVisitor>(ty: &mut P<Ty>, vis: &mut T) {
459
459
vis. visit_mt ( mt) ;
460
460
}
461
461
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) ;
463
464
generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
464
465
vis. visit_fn_decl ( decl) ;
465
466
}
@@ -488,7 +489,8 @@ pub fn noop_visit_ty<T: MutVisitor>(ty: &mut P<Ty>, vis: &mut T) {
488
489
}
489
490
490
491
pub 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) ;
492
494
items. flat_map_in_place ( |item| vis. flat_map_foreign_item ( item) ) ;
493
495
}
494
496
@@ -788,6 +790,38 @@ pub fn visit_interpolated<T: MutVisitor>(nt: &mut token::Nonterminal, vis: &mut
788
790
}
789
791
}
790
792
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
+
791
825
pub fn noop_visit_asyncness < T : MutVisitor > ( asyncness : & mut Async , vis : & mut T ) {
792
826
match asyncness {
793
827
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) {
955
989
match kind {
956
990
ItemKind :: ExternCrate ( _orig_name) => { }
957
991
ItemKind :: Use ( use_tree) => vis. visit_use_tree ( use_tree) ,
958
- ItemKind :: Static ( ty, _, expr) | ItemKind :: Const ( _ , ty , expr ) => {
992
+ ItemKind :: Static ( ty, _, expr) => {
959
993
vis. visit_ty ( ty) ;
960
994
visit_opt ( expr, |expr| vis. visit_expr ( expr) ) ;
961
995
}
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) ;
963
1003
visit_fn_sig ( sig, vis) ;
964
1004
vis. visit_generics ( generics) ;
965
1005
visit_opt ( body, |body| vis. visit_block ( body) ) ;
966
1006
}
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 => { }
971
1015
}
972
- ModKind :: Unloaded => { }
973
- } ,
1016
+ }
974
1017
ItemKind :: ForeignMod ( nm) => vis. visit_foreign_mod ( nm) ,
975
1018
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) ;
977
1021
vis. visit_generics ( generics) ;
978
1022
visit_bounds ( bounds, vis) ;
979
1023
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) {
986
1030
vis. visit_variant_data ( variant_data) ;
987
1031
vis. visit_generics ( generics) ;
988
1032
}
989
- ItemKind :: Impl ( box ImplKind {
990
- unsafety : _,
991
- polarity : _,
992
- defaultness : _,
993
- constness : _,
1033
+ ItemKind :: Impl ( box Impl {
1034
+ defaultness,
1035
+ unsafety,
994
1036
generics,
1037
+ constness,
1038
+ polarity,
995
1039
of_trait,
996
1040
self_ty,
997
1041
items,
998
1042
} ) => {
1043
+ visit_defaultness ( defaultness, vis) ;
1044
+ visit_unsafety ( unsafety, vis) ;
999
1045
vis. visit_generics ( generics) ;
1046
+ visit_constness ( constness, vis) ;
1047
+ visit_polarity ( polarity, vis) ;
1000
1048
visit_opt ( of_trait, |trait_ref| vis. visit_trait_ref ( trait_ref) ) ;
1001
1049
vis. visit_ty ( self_ty) ;
1002
1050
items. flat_map_in_place ( |item| vis. flat_map_impl_item ( item) ) ;
1003
1051
}
1004
- ItemKind :: Trait ( box TraitKind ( .., generics, bounds, items) ) => {
1052
+ ItemKind :: Trait ( box Trait { unsafety, is_auto : _, generics, bounds, items } ) => {
1053
+ visit_unsafety ( unsafety, vis) ;
1005
1054
vis. visit_generics ( generics) ;
1006
1055
visit_bounds ( bounds, vis) ;
1007
1056
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>(
1025
1074
visitor. visit_vis ( vis) ;
1026
1075
visit_attrs ( attrs, visitor) ;
1027
1076
match kind {
1028
- AssocItemKind :: Const ( _, ty, expr) => {
1077
+ AssocItemKind :: Const ( defaultness, ty, expr) => {
1078
+ visit_defaultness ( defaultness, visitor) ;
1029
1079
visitor. visit_ty ( ty) ;
1030
1080
visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
1031
1081
}
1032
- AssocItemKind :: Fn ( box FnKind ( _, sig, generics, body) ) => {
1082
+ AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1083
+ visit_defaultness ( defaultness, visitor) ;
1033
1084
visitor. visit_generics ( generics) ;
1034
1085
visit_fn_sig ( sig, visitor) ;
1035
1086
visit_opt ( body, |body| visitor. visit_block ( body) ) ;
1036
1087
}
1037
- AssocItemKind :: TyAlias ( box TyAliasKind ( _, generics, bounds, ty) ) => {
1088
+ AssocItemKind :: TyAlias ( box TyAlias { defaultness, generics, bounds, ty } ) => {
1089
+ visit_defaultness ( defaultness, visitor) ;
1038
1090
visitor. visit_generics ( generics) ;
1039
1091
visit_bounds ( bounds, visitor) ;
1040
1092
visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
@@ -1047,8 +1099,10 @@ pub fn noop_flat_map_assoc_item<T: MutVisitor>(
1047
1099
}
1048
1100
1049
1101
pub 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) ;
1051
1104
vis. visit_asyncness ( asyncness) ;
1105
+ visit_unsafety ( unsafety, vis) ;
1052
1106
}
1053
1107
1054
1108
// 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>(
1114
1168
visitor. visit_ty ( ty) ;
1115
1169
visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
1116
1170
}
1117
- ForeignItemKind :: Fn ( box FnKind ( _, sig, generics, body) ) => {
1171
+ ForeignItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1172
+ visit_defaultness ( defaultness, visitor) ;
1118
1173
visitor. visit_generics ( generics) ;
1119
1174
visit_fn_sig ( sig, visitor) ;
1120
1175
visit_opt ( body, |body| visitor. visit_block ( body) ) ;
1121
1176
}
1122
- ForeignItemKind :: TyAlias ( box TyAliasKind ( _, generics, bounds, ty) ) => {
1177
+ ForeignItemKind :: TyAlias ( box TyAlias { defaultness, generics, bounds, ty } ) => {
1178
+ visit_defaultness ( defaultness, visitor) ;
1123
1179
visitor. visit_generics ( generics) ;
1124
1180
visit_bounds ( bounds, visitor) ;
1125
1181
visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
0 commit comments