12
12
//! and returns a piece of the same type.
13
13
14
14
use hir:: * ;
15
- use syntax:: ast:: { Ident , NodeId , DUMMY_NODE_ID , Attribute , Attribute_ , MetaItem } ;
15
+ use syntax:: ast:: { Ident , Name , NodeId , DUMMY_NODE_ID , Attribute , Attribute_ , MetaItem } ;
16
16
use syntax:: ast:: { MetaWord , MetaList , MetaNameValue } ;
17
17
use hir;
18
18
use syntax:: codemap:: { respan, Span , Spanned } ;
@@ -147,8 +147,8 @@ pub trait Folder : Sized {
147
147
noop_fold_variant ( v, self )
148
148
}
149
149
150
- fn fold_ident ( & mut self , i : Ident ) -> Ident {
151
- noop_fold_ident ( i , self )
150
+ fn fold_name ( & mut self , n : Name ) -> Name {
151
+ noop_fold_name ( n , self )
152
152
}
153
153
154
154
fn fold_usize ( & mut self , i : usize ) -> usize {
@@ -284,6 +284,10 @@ pub trait Folder : Sized {
284
284
}
285
285
}
286
286
287
+ fn fold_ident < T : Folder > ( f : & mut T , i : Ident ) -> Ident {
288
+ Ident { name : f. fold_name ( i. name ) , ctxt : i. ctxt }
289
+ }
290
+
287
291
pub fn noop_fold_meta_items < T : Folder > ( meta_items : Vec < P < MetaItem > > , fld : & mut T )
288
292
-> Vec < P < MetaItem > > {
289
293
meta_items. move_map ( |x| fld. fold_meta_item ( x) )
@@ -435,8 +439,8 @@ pub fn noop_fold_variant<T: Folder>(v: P<Variant>, fld: &mut T) -> P<Variant> {
435
439
} )
436
440
}
437
441
438
- pub fn noop_fold_ident < T : Folder > ( i : Ident , _: & mut T ) -> Ident {
439
- i
442
+ pub fn noop_fold_name < T : Folder > ( n : Name , _: & mut T ) -> Name {
443
+ n
440
444
}
441
445
442
446
pub fn noop_fold_usize < T : Folder > ( i : usize , _: & mut T ) -> usize {
@@ -447,7 +451,7 @@ pub fn noop_fold_path<T: Folder>(Path {global, segments, span}: Path, fld: &mut
447
451
Path {
448
452
global : global,
449
453
segments : segments. move_map ( |PathSegment { identifier, parameters} | PathSegment {
450
- identifier : fld . fold_ident ( identifier) ,
454
+ identifier : fold_ident ( fld , identifier) ,
451
455
parameters : fld. fold_path_parameters ( parameters) ,
452
456
} ) ,
453
457
span : fld. new_span ( span)
@@ -719,7 +723,7 @@ pub fn noop_fold_struct_field<T: Folder>(f: StructField, fld: &mut T) -> StructF
719
723
720
724
pub fn noop_fold_field < T : Folder > ( Field { ident, expr, span} : Field , folder : & mut T ) -> Field {
721
725
Field {
722
- ident : respan ( ident. span , folder . fold_ident ( ident. node ) ) ,
726
+ ident : respan ( ident. span , fold_ident ( folder , ident. node ) ) ,
723
727
expr : folder. fold_expr ( expr) ,
724
728
span : folder. new_span ( span)
725
729
}
@@ -835,7 +839,7 @@ pub fn noop_fold_trait_item<T: Folder>(i: P<TraitItem>, folder: &mut T)
835
839
-> SmallVector < P < TraitItem > > {
836
840
SmallVector :: one ( i. map ( |TraitItem { id, ident, attrs, node, span} | TraitItem {
837
841
id : folder. new_id ( id) ,
838
- ident : folder . fold_ident ( ident) ,
842
+ ident : fold_ident ( folder , ident) ,
839
843
attrs : fold_attrs ( attrs, folder) ,
840
844
node : match node {
841
845
ConstTraitItem ( ty, default) => {
@@ -859,7 +863,7 @@ pub fn noop_fold_impl_item<T: Folder>(i: P<ImplItem>, folder: &mut T)
859
863
-> SmallVector < P < ImplItem > > {
860
864
SmallVector :: one ( i. map ( |ImplItem { id, ident, attrs, node, vis, span} | ImplItem {
861
865
id : folder. new_id ( id) ,
862
- ident : folder . fold_ident ( ident) ,
866
+ ident : fold_ident ( folder , ident) ,
863
867
attrs : fold_attrs ( attrs, folder) ,
864
868
vis : vis,
865
869
node : match node {
@@ -943,7 +947,7 @@ pub fn noop_fold_item_simple<T: Folder>(Item {id, ident, attrs, node, vis, span}
943
947
944
948
Item {
945
949
id : id,
946
- ident : folder . fold_ident ( ident) ,
950
+ ident : fold_ident ( folder , ident) ,
947
951
attrs : fold_attrs ( attrs, folder) ,
948
952
node : node,
949
953
vis : vis,
@@ -954,7 +958,7 @@ pub fn noop_fold_item_simple<T: Folder>(Item {id, ident, attrs, node, vis, span}
954
958
pub fn noop_fold_foreign_item < T : Folder > ( ni : P < ForeignItem > , folder : & mut T ) -> P < ForeignItem > {
955
959
ni. map ( |ForeignItem { id, ident, attrs, node, span, vis} | ForeignItem {
956
960
id : folder. new_id ( id) ,
957
- ident : folder . fold_ident ( ident) ,
961
+ ident : fold_ident ( folder , ident) ,
958
962
attrs : fold_attrs ( attrs, folder) ,
959
963
node : match node {
960
964
ForeignItemFn ( fdec, generics) => {
@@ -988,7 +992,7 @@ pub fn noop_fold_pat<T: Folder>(p: P<Pat>, folder: &mut T) -> P<Pat> {
988
992
PatIdent ( binding_mode, pth1, sub) => {
989
993
PatIdent ( binding_mode,
990
994
Spanned { span : folder. new_span ( pth1. span ) ,
991
- node : folder . fold_ident ( pth1. node ) } ,
995
+ node : fold_ident ( folder , pth1. node ) } ,
992
996
sub. map ( |x| folder. fold_pat ( x) ) )
993
997
}
994
998
PatLit ( e) => PatLit ( folder. fold_expr ( e) ) ,
@@ -1048,7 +1052,7 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span}: Expr, folder: &mut T) ->
1048
1052
}
1049
1053
ExprMethodCall ( i, tps, args) => {
1050
1054
ExprMethodCall (
1051
- respan ( folder. new_span ( i. span ) , folder . fold_ident ( i. node ) ) ,
1055
+ respan ( folder. new_span ( i. span ) , fold_ident ( folder , i. node ) ) ,
1052
1056
tps. move_map ( |x| folder. fold_ty ( x) ) ,
1053
1057
args. move_map ( |x| folder. fold_expr ( x) ) )
1054
1058
}
@@ -1073,11 +1077,11 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span}: Expr, folder: &mut T) ->
1073
1077
ExprWhile ( cond, body, opt_ident) => {
1074
1078
ExprWhile ( folder. fold_expr ( cond) ,
1075
1079
folder. fold_block ( body) ,
1076
- opt_ident. map ( |i| folder . fold_ident ( i) ) )
1080
+ opt_ident. map ( |i| fold_ident ( folder , i) ) )
1077
1081
}
1078
1082
ExprLoop ( body, opt_ident) => {
1079
1083
ExprLoop ( folder. fold_block ( body) ,
1080
- opt_ident. map ( |i| folder . fold_ident ( i) ) )
1084
+ opt_ident. map ( |i| fold_ident ( folder , i) ) )
1081
1085
}
1082
1086
ExprMatch ( expr, arms, source) => {
1083
1087
ExprMatch ( folder. fold_expr ( expr) ,
@@ -1101,7 +1105,7 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span}: Expr, folder: &mut T) ->
1101
1105
ExprField ( el, ident) => {
1102
1106
ExprField ( folder. fold_expr ( el) ,
1103
1107
respan ( folder. new_span ( ident. span ) ,
1104
- folder . fold_ident ( ident. node ) ) )
1108
+ fold_ident ( folder , ident. node ) ) )
1105
1109
}
1106
1110
ExprTupField ( el, ident) => {
1107
1111
ExprTupField ( folder. fold_expr ( el) ,
@@ -1126,11 +1130,11 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span}: Expr, folder: &mut T) ->
1126
1130
}
1127
1131
ExprBreak ( opt_ident) => ExprBreak ( opt_ident. map ( |label|
1128
1132
respan ( folder. new_span ( label. span ) ,
1129
- folder . fold_ident ( label. node ) ) )
1133
+ fold_ident ( folder , label. node ) ) )
1130
1134
) ,
1131
1135
ExprAgain ( opt_ident) => ExprAgain ( opt_ident. map ( |label|
1132
1136
respan ( folder. new_span ( label. span ) ,
1133
- folder . fold_ident ( label. node ) ) )
1137
+ fold_ident ( folder , label. node ) ) )
1134
1138
) ,
1135
1139
ExprRet ( e) => ExprRet ( e. map ( |x| folder. fold_expr ( x) ) ) ,
1136
1140
ExprInlineAsm ( InlineAsm {
0 commit comments