@@ -863,7 +863,6 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
863
863
walk_list ! ( this, visit_assoc_item, items, AssocCtxt :: Impl { of_trait: true } ) ;
864
864
} ) ;
865
865
walk_list ! ( self , visit_attribute, & item. attrs) ;
866
- return ; // Avoid visiting again.
867
866
}
868
867
ItemKind :: Impl ( box Impl {
869
868
safety,
@@ -915,7 +914,6 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
915
914
walk_list ! ( this, visit_assoc_item, items, AssocCtxt :: Impl { of_trait: false } ) ;
916
915
} ) ;
917
916
walk_list ! ( self , visit_attribute, & item. attrs) ;
918
- return ; // Avoid visiting again.
919
917
}
920
918
ItemKind :: Fn (
921
919
func @ box Fn {
@@ -960,7 +958,6 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
960
958
let kind = FnKind :: Fn ( FnCtxt :: Free , & item. vis , & * func) ;
961
959
self . visit_fn ( kind, item. span , item. id ) ;
962
960
walk_list ! ( self , visit_attribute, & item. attrs) ;
963
- return ; // Avoid visiting again.
964
961
}
965
962
ItemKind :: ForeignMod ( ForeignMod { extern_span, abi, safety, .. } ) => {
966
963
self . with_in_extern_mod ( * safety, |this| {
@@ -991,7 +988,6 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
991
988
visit:: walk_item ( this, item) ;
992
989
this. extern_mod = old_item;
993
990
} ) ;
994
- return ; // Avoid visiting again.
995
991
}
996
992
ItemKind :: Enum ( _, def, _) => {
997
993
for variant in & def. variants {
@@ -1006,6 +1002,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1006
1002
) ;
1007
1003
}
1008
1004
}
1005
+ visit:: walk_item ( self , item)
1009
1006
}
1010
1007
ItemKind :: Trait ( box Trait { is_auto, generics, ident, bounds, items, .. } ) => {
1011
1008
let is_const_trait =
@@ -1033,7 +1030,6 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1033
1030
walk_list ! ( this, visit_assoc_item, items, AssocCtxt :: Trait ) ;
1034
1031
} ) ;
1035
1032
walk_list ! ( self , visit_attribute, & item. attrs) ;
1036
- return ; // Avoid visiting again
1037
1033
}
1038
1034
ItemKind :: Mod ( safety, ident, mod_kind) => {
1039
1035
if let & Safety :: Unsafe ( span) = safety {
@@ -1045,6 +1041,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1045
1041
{
1046
1042
self . check_mod_file_item_asciionly ( * ident) ;
1047
1043
}
1044
+ visit:: walk_item ( self , item)
1048
1045
}
1049
1046
ItemKind :: Struct ( ident, vdata, generics) => match vdata {
1050
1047
VariantData :: Struct { fields, .. } => {
@@ -1054,9 +1051,8 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1054
1051
// Permit `Anon{Struct,Union}` as field type.
1055
1052
walk_list ! ( self , visit_struct_field_def, fields) ;
1056
1053
walk_list ! ( self , visit_attribute, & item. attrs) ;
1057
- return ;
1058
1054
}
1059
- _ => { }
1055
+ _ => visit :: walk_item ( self , item ) ,
1060
1056
} ,
1061
1057
ItemKind :: Union ( ident, vdata, generics) => {
1062
1058
if vdata. fields ( ) . is_empty ( ) {
@@ -1070,9 +1066,8 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1070
1066
// Permit `Anon{Struct,Union}` as field type.
1071
1067
walk_list ! ( self , visit_struct_field_def, fields) ;
1072
1068
walk_list ! ( self , visit_attribute, & item. attrs) ;
1073
- return ;
1074
1069
}
1075
- _ => { }
1070
+ _ => visit :: walk_item ( self , item ) ,
1076
1071
}
1077
1072
}
1078
1073
ItemKind :: Const ( box ConstItem { defaultness, expr, .. } ) => {
@@ -1083,6 +1078,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1083
1078
replace_span : self . ending_semi_or_hi ( item. span ) ,
1084
1079
} ) ;
1085
1080
}
1081
+ visit:: walk_item ( self , item) ;
1086
1082
}
1087
1083
ItemKind :: Static ( box StaticItem { expr, safety, .. } ) => {
1088
1084
self . check_item_safety ( item. span , * safety) ;
@@ -1096,6 +1092,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1096
1092
replace_span : self . ending_semi_or_hi ( item. span ) ,
1097
1093
} ) ;
1098
1094
}
1095
+ visit:: walk_item ( self , item) ;
1099
1096
}
1100
1097
ItemKind :: TyAlias (
1101
1098
ty_alias @ box TyAlias { defaultness, bounds, where_clauses, ty, .. } ,
@@ -1119,11 +1116,10 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
1119
1116
help : self . sess . is_nightly_build ( ) ,
1120
1117
} ) ;
1121
1118
}
1119
+ visit:: walk_item ( self , item) ;
1122
1120
}
1123
- _ => { }
1121
+ _ => visit :: walk_item ( self , item ) ,
1124
1122
}
1125
-
1126
- visit:: walk_item ( self , item) ;
1127
1123
}
1128
1124
1129
1125
fn visit_foreign_item ( & mut self , fi : & ' a ForeignItem ) {
0 commit comments