@@ -476,14 +476,15 @@ pub trait Visitor<'v>: Sized {
476
476
/// Walks the contents of a crate. See also `Crate::visit_all_items`.
477
477
pub fn walk_crate < ' v , V : Visitor < ' v > > ( visitor : & mut V , krate : & ' v Crate < ' v > ) {
478
478
visitor. visit_mod ( & krate. item . module , krate. item . span , CRATE_HIR_ID ) ;
479
- walk_list ! ( visitor, visit_attribute, krate. item. attrs) ;
480
479
walk_list ! ( visitor, visit_macro_def, krate. exported_macros) ;
480
+ for attr in krate. attrs . iter ( ) . flat_map ( |l| * l) {
481
+ visitor. visit_attribute ( attr)
482
+ }
481
483
}
482
484
483
485
pub fn walk_macro_def < ' v , V : Visitor < ' v > > ( visitor : & mut V , macro_def : & ' v MacroDef < ' v > ) {
484
486
visitor. visit_id ( macro_def. hir_id ( ) ) ;
485
487
visitor. visit_ident ( macro_def. ident ) ;
486
- walk_list ! ( visitor, visit_attribute, macro_def. attrs) ;
487
488
}
488
489
489
490
pub fn walk_mod < ' v , V : Visitor < ' v > > ( visitor : & mut V , module : & ' v Mod < ' v > , mod_hir_id : HirId ) {
@@ -502,7 +503,6 @@ pub fn walk_local<'v, V: Visitor<'v>>(visitor: &mut V, local: &'v Local<'v>) {
502
503
// Intentionally visiting the expr first - the initialization expr
503
504
// dominates the local's definition.
504
505
walk_list ! ( visitor, visit_expr, & local. init) ;
505
- walk_list ! ( visitor, visit_attribute, local. attrs. iter( ) ) ;
506
506
visitor. visit_id ( local. hir_id ) ;
507
507
visitor. visit_pat ( & local. pat ) ;
508
508
walk_list ! ( visitor, visit_ty, & local. ty) ;
@@ -549,7 +549,6 @@ pub fn walk_trait_ref<'v, V: Visitor<'v>>(visitor: &mut V, trait_ref: &'v TraitR
549
549
pub fn walk_param < ' v , V : Visitor < ' v > > ( visitor : & mut V , param : & ' v Param < ' v > ) {
550
550
visitor. visit_id ( param. hir_id ) ;
551
551
visitor. visit_pat ( & param. pat ) ;
552
- walk_list ! ( visitor, visit_attribute, param. attrs) ;
553
552
}
554
553
555
554
pub fn walk_item < ' v , V : Visitor < ' v > > ( visitor : & mut V , item : & ' v Item < ' v > ) {
@@ -644,7 +643,6 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item<'v>) {
644
643
walk_list ! ( visitor, visit_param_bound, bounds) ;
645
644
}
646
645
}
647
- walk_list ! ( visitor, visit_attribute, item. attrs) ;
648
646
}
649
647
650
648
pub fn walk_use < ' v , V : Visitor < ' v > > ( visitor : & mut V , path : & ' v Path < ' v > , hir_id : HirId ) {
@@ -678,7 +676,6 @@ pub fn walk_variant<'v, V: Visitor<'v>>(
678
676
variant. span ,
679
677
) ;
680
678
walk_list ! ( visitor, visit_anon_const, & variant. disr_expr) ;
681
- walk_list ! ( visitor, visit_attribute, variant. attrs) ;
682
679
}
683
680
684
681
pub fn walk_ty < ' v , V : Visitor < ' v > > ( visitor : & mut V , typ : & ' v Ty < ' v > ) {
@@ -843,8 +840,6 @@ pub fn walk_foreign_item<'v, V: Visitor<'v>>(visitor: &mut V, foreign_item: &'v
843
840
ForeignItemKind :: Static ( ref typ, _) => visitor. visit_ty ( typ) ,
844
841
ForeignItemKind :: Type => ( ) ,
845
842
}
846
-
847
- walk_list ! ( visitor, visit_attribute, foreign_item. attrs) ;
848
843
}
849
844
850
845
pub fn walk_param_bound < ' v , V : Visitor < ' v > > ( visitor : & mut V , bound : & ' v GenericBound < ' v > ) {
@@ -862,7 +857,6 @@ pub fn walk_param_bound<'v, V: Visitor<'v>>(visitor: &mut V, bound: &'v GenericB
862
857
863
858
pub fn walk_generic_param < ' v , V : Visitor < ' v > > ( visitor : & mut V , param : & ' v GenericParam < ' v > ) {
864
859
visitor. visit_id ( param. hir_id ) ;
865
- walk_list ! ( visitor, visit_attribute, param. attrs) ;
866
860
match param. name {
867
861
ParamName :: Plain ( ident) => visitor. visit_ident ( ident) ,
868
862
ParamName :: Error | ParamName :: Fresh ( _) => { }
@@ -952,7 +946,6 @@ pub fn walk_fn<'v, V: Visitor<'v>>(
952
946
953
947
pub fn walk_trait_item < ' v , V : Visitor < ' v > > ( visitor : & mut V , trait_item : & ' v TraitItem < ' v > ) {
954
948
visitor. visit_ident ( trait_item. ident ) ;
955
- walk_list ! ( visitor, visit_attribute, trait_item. attrs) ;
956
949
visitor. visit_generics ( & trait_item. generics ) ;
957
950
match trait_item. kind {
958
951
TraitItemKind :: Const ( ref ty, default) => {
@@ -1000,7 +993,7 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
1000
993
ident,
1001
994
ref vis,
1002
995
ref defaultness,
1003
- attrs,
996
+ attrs : _ ,
1004
997
ref generics,
1005
998
ref kind,
1006
999
span : _,
@@ -1009,7 +1002,6 @@ pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplIt
1009
1002
visitor. visit_ident ( ident) ;
1010
1003
visitor. visit_vis ( vis) ;
1011
1004
visitor. visit_defaultness ( defaultness) ;
1012
- walk_list ! ( visitor, visit_attribute, attrs) ;
1013
1005
visitor. visit_generics ( generics) ;
1014
1006
match * kind {
1015
1007
ImplItemKind :: Const ( ref ty, body) => {
@@ -1067,7 +1059,6 @@ pub fn walk_struct_field<'v, V: Visitor<'v>>(visitor: &mut V, struct_field: &'v
1067
1059
visitor. visit_vis ( & struct_field. vis ) ;
1068
1060
visitor. visit_ident ( struct_field. ident ) ;
1069
1061
visitor. visit_ty ( & struct_field. ty ) ;
1070
- walk_list ! ( visitor, visit_attribute, struct_field. attrs) ;
1071
1062
}
1072
1063
1073
1064
pub fn walk_block < ' v , V : Visitor < ' v > > ( visitor : & mut V , block : & ' v Block < ' v > ) {
@@ -1094,7 +1085,6 @@ pub fn walk_anon_const<'v, V: Visitor<'v>>(visitor: &mut V, constant: &'v AnonCo
1094
1085
1095
1086
pub fn walk_expr < ' v , V : Visitor < ' v > > ( visitor : & mut V , expression : & ' v Expr < ' v > ) {
1096
1087
visitor. visit_id ( expression. hir_id ) ;
1097
- walk_list ! ( visitor, visit_attribute, expression. attrs. iter( ) ) ;
1098
1088
match expression. kind {
1099
1089
ExprKind :: Box ( ref subexpression) => visitor. visit_expr ( subexpression) ,
1100
1090
ExprKind :: Array ( subexpressions) => {
@@ -1238,7 +1228,6 @@ pub fn walk_arm<'v, V: Visitor<'v>>(visitor: &mut V, arm: &'v Arm<'v>) {
1238
1228
}
1239
1229
}
1240
1230
visitor. visit_expr ( & arm. body ) ;
1241
- walk_list ! ( visitor, visit_attribute, arm. attrs) ;
1242
1231
}
1243
1232
1244
1233
pub fn walk_vis < ' v , V : Visitor < ' v > > ( visitor : & mut V , vis : & ' v Visibility < ' v > ) {
0 commit comments