Skip to content

Commit faa82eb

Browse files
committed
Streamline Folder.
Specifically: - Remove dead methods: fold_usize, fold_meta_items, fold_opt_bounds. - Remove useless methods: fold_global_asm, fold_range_end. - Inline and remove unnecessary methods: fold_item_simple, fold_foreign_item_simple.
1 parent b968641 commit faa82eb

File tree

1 file changed

+20
-77
lines changed

1 file changed

+20
-77
lines changed

src/libsyntax/fold.rs

Lines changed: 20 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ pub trait Folder : Sized {
4545
noop_fold_crate(c, self)
4646
}
4747

48-
fn fold_meta_items(&mut self, meta_items: Vec<MetaItem>) -> Vec<MetaItem> {
49-
noop_fold_meta_items(meta_items, self)
50-
}
51-
5248
fn fold_meta_list_item(&mut self, list_item: NestedMetaItem) -> NestedMetaItem {
5349
noop_fold_meta_list_item(list_item, self)
5450
}
@@ -65,18 +61,10 @@ pub trait Folder : Sized {
6561
noop_fold_foreign_item(ni, self)
6662
}
6763

68-
fn fold_foreign_item_simple(&mut self, ni: ForeignItem) -> ForeignItem {
69-
noop_fold_foreign_item_simple(ni, self)
70-
}
71-
7264
fn fold_item(&mut self, i: P<Item>) -> SmallVec<[P<Item>; 1]> {
7365
noop_fold_item(i, self)
7466
}
7567

76-
fn fold_item_simple(&mut self, i: Item) -> Item {
77-
noop_fold_item_simple(i, self)
78-
}
79-
8068
fn fold_fn_header(&mut self, header: FnHeader) -> FnHeader {
8169
noop_fold_fn_header(header, self)
8270
}
@@ -133,10 +121,6 @@ pub trait Folder : Sized {
133121
e.map(|e| noop_fold_expr(e, self))
134122
}
135123

136-
fn fold_range_end(&mut self, re: RangeEnd) -> RangeEnd {
137-
noop_fold_range_end(re, self)
138-
}
139-
140124
fn fold_opt_expr(&mut self, e: P<Expr>) -> Option<P<Expr>> {
141125
noop_fold_opt_expr(e, self)
142126
}
@@ -172,10 +156,6 @@ pub trait Folder : Sized {
172156
noop_fold_foreign_mod(nm, self)
173157
}
174158

175-
fn fold_global_asm(&mut self, ga: P<GlobalAsm>) -> P<GlobalAsm> {
176-
noop_fold_global_asm(ga, self)
177-
}
178-
179159
fn fold_variant(&mut self, v: Variant) -> Variant {
180160
noop_fold_variant(v, self)
181161
}
@@ -184,10 +164,6 @@ pub trait Folder : Sized {
184164
noop_fold_ident(i, self)
185165
}
186166

187-
fn fold_usize(&mut self, i: usize) -> usize {
188-
noop_fold_usize(i, self)
189-
}
190-
191167
fn fold_path(&mut self, p: Path) -> Path {
192168
noop_fold_path(p, self)
193169
}
@@ -281,10 +257,6 @@ pub trait Folder : Sized {
281257
noop_fold_interpolated(nt, self)
282258
}
283259

284-
fn fold_opt_bounds(&mut self, b: Option<GenericBounds>) -> Option<GenericBounds> {
285-
noop_fold_opt_bounds(b, self)
286-
}
287-
288260
fn fold_bounds(&mut self, b: GenericBounds) -> GenericBounds {
289261
noop_fold_bounds(b, self)
290262
}
@@ -324,10 +296,6 @@ pub trait Folder : Sized {
324296
}
325297
}
326298

327-
pub fn noop_fold_meta_items<T: Folder>(meta_items: Vec<MetaItem>, fld: &mut T) -> Vec<MetaItem> {
328-
meta_items.move_map(|x| fld.fold_meta_item(x))
329-
}
330-
331299
pub fn noop_fold_use_tree<T: Folder>(use_tree: UseTree, fld: &mut T) -> UseTree {
332300
UseTree {
333301
span: fld.new_span(use_tree.span),
@@ -430,11 +398,6 @@ pub fn noop_fold_foreign_mod<T: Folder>(ForeignMod {abi, items}: ForeignMod,
430398
}
431399
}
432400

433-
pub fn noop_fold_global_asm<T: Folder>(ga: P<GlobalAsm>,
434-
_: &mut T) -> P<GlobalAsm> {
435-
ga
436-
}
437-
438401
pub fn noop_fold_variant<T: Folder>(v: Variant, fld: &mut T) -> Variant {
439402
Spanned {
440403
node: Variant_ {
@@ -451,10 +414,6 @@ pub fn noop_fold_ident<T: Folder>(ident: Ident, fld: &mut T) -> Ident {
451414
Ident::new(ident.name, fld.new_span(ident.span))
452415
}
453416

454-
pub fn noop_fold_usize<T: Folder>(i: usize, _: &mut T) -> usize {
455-
i
456-
}
457-
458417
pub fn noop_fold_path<T: Folder>(Path { segments, span }: Path, fld: &mut T) -> Path {
459418
Path {
460419
segments: segments.move_map(|PathSegment { ident, id, args }| PathSegment {
@@ -873,11 +832,6 @@ pub fn noop_fold_mt<T: Folder>(MutTy {ty, mutbl}: MutTy, folder: &mut T) -> MutT
873832
}
874833
}
875834

876-
pub fn noop_fold_opt_bounds<T: Folder>(b: Option<GenericBounds>, folder: &mut T)
877-
-> Option<GenericBounds> {
878-
b.map(|bounds| folder.fold_bounds(bounds))
879-
}
880-
881835
fn noop_fold_bounds<T: Folder>(bounds: GenericBounds, folder: &mut T)
882836
-> GenericBounds {
883837
bounds.move_map(|bound| folder.fold_param_bound(bound))
@@ -913,7 +867,7 @@ pub fn noop_fold_item_kind<T: Folder>(i: ItemKind, folder: &mut T) -> ItemKind {
913867
}
914868
ItemKind::Mod(m) => ItemKind::Mod(folder.fold_mod(m)),
915869
ItemKind::ForeignMod(nm) => ItemKind::ForeignMod(folder.fold_foreign_mod(nm)),
916-
ItemKind::GlobalAsm(ga) => ItemKind::GlobalAsm(folder.fold_global_asm(ga)),
870+
ItemKind::GlobalAsm(ga) => ItemKind::GlobalAsm(ga),
917871
ItemKind::Ty(t, generics) => {
918872
ItemKind::Ty(folder.fold_ty(t), folder.fold_generics(generics))
919873
}
@@ -1071,34 +1025,27 @@ pub fn noop_fold_crate<T: Folder>(Crate {module, attrs, span}: Crate,
10711025

10721026
// fold one item into possibly many items
10731027
pub fn noop_fold_item<T: Folder>(i: P<Item>, folder: &mut T) -> SmallVec<[P<Item>; 1]> {
1074-
smallvec![i.map(|i| folder.fold_item_simple(i))]
1075-
}
1076-
1077-
// fold one item into exactly one item
1078-
pub fn noop_fold_item_simple<T: Folder>(Item {id, ident, attrs, node, vis, span, tokens}: Item,
1079-
folder: &mut T) -> Item {
1080-
Item {
1081-
id: folder.new_id(id),
1082-
vis: folder.fold_vis(vis),
1083-
ident: folder.fold_ident(ident),
1084-
attrs: fold_attrs(attrs, folder),
1085-
node: folder.fold_item_kind(node),
1086-
span: folder.new_span(span),
1087-
1088-
// FIXME: if this is replaced with a call to `folder.fold_tts` it causes
1089-
// an ICE during resolve... odd!
1090-
tokens,
1091-
}
1028+
smallvec![i.map(|i| {
1029+
let Item {id, ident, attrs, node, vis, span, tokens} = i;
1030+
Item {
1031+
id: folder.new_id(id),
1032+
vis: folder.fold_vis(vis),
1033+
ident: folder.fold_ident(ident),
1034+
attrs: fold_attrs(attrs, folder),
1035+
node: folder.fold_item_kind(node),
1036+
span: folder.new_span(span),
1037+
1038+
// FIXME: if this is replaced with a call to `folder.fold_tts` it causes
1039+
// an ICE during resolve... odd!
1040+
tokens,
1041+
}
1042+
})]
10921043
}
10931044

10941045
pub fn noop_fold_foreign_item<T: Folder>(ni: ForeignItem, folder: &mut T)
10951046
-> SmallVec<[ForeignItem; 1]>
10961047
{
1097-
smallvec![folder.fold_foreign_item_simple(ni)]
1098-
}
1099-
1100-
pub fn noop_fold_foreign_item_simple<T: Folder>(ni: ForeignItem, folder: &mut T) -> ForeignItem {
1101-
ForeignItem {
1048+
smallvec![ForeignItem {
11021049
id: folder.new_id(ni.id),
11031050
vis: folder.fold_vis(ni.vis),
11041051
ident: folder.fold_ident(ni.ident),
@@ -1114,7 +1061,7 @@ pub fn noop_fold_foreign_item_simple<T: Folder>(ni: ForeignItem, folder: &mut T)
11141061
ForeignItemKind::Macro(mac) => ForeignItemKind::Macro(folder.fold_mac(mac)),
11151062
},
11161063
span: folder.new_span(ni.span)
1117-
}
1064+
}]
11181065
}
11191066

11201067
pub fn noop_fold_method_sig<T: Folder>(sig: MethodSig, folder: &mut T) -> MethodSig {
@@ -1161,10 +1108,10 @@ pub fn noop_fold_pat<T: Folder>(p: P<Pat>, folder: &mut T) -> P<Pat> {
11611108
}
11621109
PatKind::Box(inner) => PatKind::Box(folder.fold_pat(inner)),
11631110
PatKind::Ref(inner, mutbl) => PatKind::Ref(folder.fold_pat(inner), mutbl),
1164-
PatKind::Range(e1, e2, Spanned { span, node: end }) => {
1111+
PatKind::Range(e1, e2, Spanned { span, node }) => {
11651112
PatKind::Range(folder.fold_expr(e1),
11661113
folder.fold_expr(e2),
1167-
Spanned { span, node: folder.fold_range_end(end) })
1114+
Spanned { span, node })
11681115
},
11691116
PatKind::Slice(before, slice, after) => {
11701117
PatKind::Slice(before.move_map(|x| folder.fold_pat(x)),
@@ -1178,10 +1125,6 @@ pub fn noop_fold_pat<T: Folder>(p: P<Pat>, folder: &mut T) -> P<Pat> {
11781125
})
11791126
}
11801127

1181-
pub fn noop_fold_range_end<T: Folder>(end: RangeEnd, _folder: &mut T) -> RangeEnd {
1182-
end
1183-
}
1184-
11851128
pub fn noop_fold_anon_const<T: Folder>(constant: AnonConst, folder: &mut T) -> AnonConst {
11861129
let AnonConst {id, value} = constant;
11871130
AnonConst {

0 commit comments

Comments
 (0)