@@ -86,7 +86,7 @@ pub trait Folder {
86
86
kind : sf. node . kind ,
87
87
id : id,
88
88
ty : self . fold_ty ( sf. node . ty ) ,
89
- attrs : sf. node . attrs . iter ( ) . map ( |e| fold_attribute_ ( * e, self ) ) . collect ( )
89
+ attrs : sf. node . attrs . iter ( ) . map ( |e| self . fold_attribute ( * e) ) . collect ( )
90
90
} ,
91
91
span : self . new_span ( sf. span )
92
92
}
@@ -118,7 +118,7 @@ pub trait Folder {
118
118
119
119
fn fold_arm ( & mut self , a : & Arm ) -> Arm {
120
120
Arm {
121
- attrs : a. attrs . iter ( ) . map ( |x| fold_attribute_ ( * x, self ) ) . collect ( ) ,
121
+ attrs : a. attrs . iter ( ) . map ( |x| self . fold_attribute ( * x) ) . collect ( ) ,
122
122
pats : a. pats . iter ( ) . map ( |x| self . fold_pat ( * x) ) . collect ( ) ,
123
123
guard : a. guard . map ( |x| self . fold_expr ( x) ) ,
124
124
body : self . fold_expr ( a. body ) ,
@@ -251,7 +251,7 @@ pub trait Folder {
251
251
}
252
252
}
253
253
254
- let attrs = v. node . attrs . iter ( ) . map ( |x| fold_attribute_ ( * x, self ) ) . collect ( ) ;
254
+ let attrs = v. node . attrs . iter ( ) . map ( |x| self . fold_attribute ( * x) ) . collect ( ) ;
255
255
256
256
let de = match v. node . disr_expr {
257
257
Some ( e) => Some ( self . fold_expr ( e) ) ,
@@ -344,6 +344,21 @@ pub trait Folder {
344
344
fn fold_lifetime ( & mut self , l : & Lifetime ) -> Lifetime {
345
345
noop_fold_lifetime ( l, self )
346
346
}
347
+
348
+ //used in noop_fold_item and noop_fold_crate
349
+ fn fold_attribute ( & mut self , at : Attribute ) -> Attribute {
350
+ Spanned {
351
+ span : self . new_span ( at. span ) ,
352
+ node : ast:: Attribute_ {
353
+ id : at. node . id ,
354
+ style : at. node . style ,
355
+ value : fold_meta_item_ ( at. node . value , self ) ,
356
+ is_sugared_doc : at. node . is_sugared_doc
357
+ }
358
+ }
359
+ }
360
+
361
+
347
362
}
348
363
349
364
/* some little folds that probably aren't useful to have in Folder itself*/
@@ -364,19 +379,6 @@ fn fold_meta_item_<T: Folder>(mi: Gc<MetaItem>, fld: &mut T) -> Gc<MetaItem> {
364
379
span : fld. new_span ( mi. span ) }
365
380
}
366
381
367
- //used in noop_fold_item and noop_fold_crate
368
- fn fold_attribute_ < T : Folder > ( at : Attribute , fld : & mut T ) -> Attribute {
369
- Spanned {
370
- span : fld. new_span ( at. span ) ,
371
- node : ast:: Attribute_ {
372
- id : at. node . id ,
373
- style : at. node . style ,
374
- value : fold_meta_item_ ( at. node . value , fld) ,
375
- is_sugared_doc : at. node . is_sugared_doc
376
- }
377
- }
378
- }
379
-
380
382
//used in noop_fold_foreign_item and noop_fold_fn_decl
381
383
fn fold_arg_ < T : Folder > ( a : & Arg , fld : & mut T ) -> Arg {
382
384
let id = fld. new_id ( a. id ) ; // Needs to be first, for ast_map.
@@ -526,7 +528,7 @@ fn fold_struct_field<T: Folder>(f: &StructField, fld: &mut T) -> StructField {
526
528
kind : f. node . kind ,
527
529
id : id,
528
530
ty : fld. fold_ty ( f. node . ty ) ,
529
- attrs : f. node . attrs . iter ( ) . map ( |a| fold_attribute_ ( * a, fld ) ) . collect ( ) ,
531
+ attrs : f. node . attrs . iter ( ) . map ( |a| fld . fold_attribute ( * a) ) . collect ( ) ,
530
532
} ,
531
533
span : fld. new_span ( f. span ) ,
532
534
}
@@ -578,7 +580,7 @@ pub fn noop_fold_view_item<T: Folder>(vi: &ViewItem, folder: &mut T)
578
580
} ;
579
581
ViewItem {
580
582
node : inner_view_item,
581
- attrs : vi. attrs . iter ( ) . map ( |a| fold_attribute_ ( * a, folder ) ) . collect ( ) ,
583
+ attrs : vi. attrs . iter ( ) . map ( |a| folder . fold_attribute ( * a) ) . collect ( ) ,
582
584
vis : vi. vis ,
583
585
span : folder. new_span ( vi. span ) ,
584
586
}
@@ -658,7 +660,7 @@ pub fn noop_fold_type_method<T: Folder>(m: &TypeMethod, fld: &mut T) -> TypeMeth
658
660
TypeMethod {
659
661
id : id,
660
662
ident : fld. fold_ident ( m. ident ) ,
661
- attrs : m. attrs . iter ( ) . map ( |a| fold_attribute_ ( * a, fld ) ) . collect ( ) ,
663
+ attrs : m. attrs . iter ( ) . map ( |a| fld . fold_attribute ( * a) ) . collect ( ) ,
662
664
fn_style : m. fn_style ,
663
665
decl : fld. fold_fn_decl ( & * m. decl ) ,
664
666
generics : fold_generics ( & m. generics , fld) ,
@@ -681,7 +683,7 @@ pub fn noop_fold_mod<T: Folder>(m: &Mod, folder: &mut T) -> Mod {
681
683
pub fn noop_fold_crate < T : Folder > ( c : Crate , folder : & mut T ) -> Crate {
682
684
Crate {
683
685
module : folder. fold_mod ( & c. module ) ,
684
- attrs : c. attrs . iter ( ) . map ( |x| fold_attribute_ ( * x, folder ) ) . collect ( ) ,
686
+ attrs : c. attrs . iter ( ) . map ( |x| folder . fold_attribute ( * x) ) . collect ( ) ,
685
687
config : c. config . iter ( ) . map ( |x| fold_meta_item_ ( * x, folder) ) . collect ( ) ,
686
688
span : folder. new_span ( c. span ) ,
687
689
}
@@ -702,7 +704,7 @@ pub fn noop_fold_item<T: Folder>(i: &Item,
702
704
SmallVector :: one ( box ( GC ) Item {
703
705
id : id,
704
706
ident : folder. fold_ident ( ident) ,
705
- attrs : i. attrs . iter ( ) . map ( |e| fold_attribute_ ( * e, folder ) ) . collect ( ) ,
707
+ attrs : i. attrs . iter ( ) . map ( |e| folder . fold_attribute ( * e) ) . collect ( ) ,
706
708
node : node,
707
709
vis : i. vis ,
708
710
span : folder. new_span ( i. span )
@@ -715,7 +717,7 @@ pub fn noop_fold_foreign_item<T: Folder>(ni: &ForeignItem,
715
717
box ( GC ) ForeignItem {
716
718
id : id,
717
719
ident : folder. fold_ident ( ni. ident ) ,
718
- attrs : ni. attrs . iter ( ) . map ( |x| fold_attribute_ ( * x, folder ) ) . collect ( ) ,
720
+ attrs : ni. attrs . iter ( ) . map ( |x| folder . fold_attribute ( * x) ) . collect ( ) ,
719
721
node : match ni. node {
720
722
ForeignItemFn ( ref fdec, ref generics) => {
721
723
ForeignItemFn ( P ( FnDecl {
@@ -739,7 +741,7 @@ pub fn noop_fold_method<T: Folder>(m: &Method, folder: &mut T) -> Gc<Method> {
739
741
box ( GC ) Method {
740
742
id : id,
741
743
ident : folder. fold_ident ( m. ident ) ,
742
- attrs : m. attrs . iter ( ) . map ( |a| fold_attribute_ ( * a, folder ) ) . collect ( ) ,
744
+ attrs : m. attrs . iter ( ) . map ( |a| folder . fold_attribute ( * a) ) . collect ( ) ,
743
745
generics : fold_generics ( & m. generics , folder) ,
744
746
explicit_self : folder. fold_explicit_self ( & m. explicit_self ) ,
745
747
fn_style : m. fn_style ,
0 commit comments