Skip to content

Commit 45b445e

Browse files
committed
Restore fold_ident and visit_ident
1 parent 2a77906 commit 45b445e

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

src/librustc_front/fold.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ pub trait Folder : Sized {
151151
noop_fold_name(n, self)
152152
}
153153

154+
fn fold_ident(&mut self, i: Ident) -> Ident {
155+
noop_fold_ident(i, self)
156+
}
157+
154158
fn fold_usize(&mut self, i: usize) -> usize {
155159
noop_fold_usize(i, self)
156160
}
@@ -284,10 +288,6 @@ pub trait Folder : Sized {
284288
}
285289
}
286290

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-
291291
pub fn noop_fold_meta_items<T: Folder>(meta_items: Vec<P<MetaItem>>, fld: &mut T)
292292
-> Vec<P<MetaItem>> {
293293
meta_items.move_map(|x| fld.fold_meta_item(x))
@@ -443,6 +443,10 @@ pub fn noop_fold_name<T: Folder>(n: Name, _: &mut T) -> Name {
443443
n
444444
}
445445

446+
pub fn noop_fold_ident<T: Folder>(i: Ident, _: &mut T) -> Ident {
447+
i
448+
}
449+
446450
pub fn noop_fold_usize<T: Folder>(i: usize, _: &mut T) -> usize {
447451
i
448452
}
@@ -451,7 +455,7 @@ pub fn noop_fold_path<T: Folder>(Path {global, segments, span}: Path, fld: &mut
451455
Path {
452456
global: global,
453457
segments: segments.move_map(|PathSegment {identifier, parameters}| PathSegment {
454-
identifier: fold_ident(fld, identifier),
458+
identifier: fld.fold_ident(identifier),
455459
parameters: fld.fold_path_parameters(parameters),
456460
}),
457461
span: fld.new_span(span)
@@ -992,7 +996,7 @@ pub fn noop_fold_pat<T: Folder>(p: P<Pat>, folder: &mut T) -> P<Pat> {
992996
PatIdent(binding_mode, pth1, sub) => {
993997
PatIdent(binding_mode,
994998
Spanned{span: folder.new_span(pth1.span),
995-
node: fold_ident(folder, pth1.node)},
999+
node: folder.fold_ident(pth1.node)},
9961000
sub.map(|x| folder.fold_pat(x)))
9971001
}
9981002
PatLit(e) => PatLit(folder.fold_expr(e)),
@@ -1077,11 +1081,11 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span}: Expr, folder: &mut T) ->
10771081
ExprWhile(cond, body, opt_ident) => {
10781082
ExprWhile(folder.fold_expr(cond),
10791083
folder.fold_block(body),
1080-
opt_ident.map(|i| fold_ident(folder, i)))
1084+
opt_ident.map(|i| folder.fold_ident(i)))
10811085
}
10821086
ExprLoop(body, opt_ident) => {
10831087
ExprLoop(folder.fold_block(body),
1084-
opt_ident.map(|i| fold_ident(folder, i)))
1088+
opt_ident.map(|i| folder.fold_ident(i)))
10851089
}
10861090
ExprMatch(expr, arms, source) => {
10871091
ExprMatch(folder.fold_expr(expr),
@@ -1130,11 +1134,11 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span}: Expr, folder: &mut T) ->
11301134
}
11311135
ExprBreak(opt_ident) => ExprBreak(opt_ident.map(|label|
11321136
respan(folder.new_span(label.span),
1133-
fold_ident(folder, label.node)))
1137+
folder.fold_ident(label.node)))
11341138
),
11351139
ExprAgain(opt_ident) => ExprAgain(opt_ident.map(|label|
11361140
respan(folder.new_span(label.span),
1137-
fold_ident(folder, label.node)))
1141+
folder.fold_ident(label.node)))
11381142
),
11391143
ExprRet(e) => ExprRet(e.map(|x| folder.fold_expr(x))),
11401144
ExprInlineAsm(InlineAsm {

src/librustc_front/visit.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
//! those that are created by the expansion of a macro.
2525
2626
use syntax::abi::Abi;
27-
use syntax::ast::{NodeId, CRATE_NODE_ID, Name, Attribute};
27+
use syntax::ast::{Ident, NodeId, CRATE_NODE_ID, Name, Attribute};
2828
use hir::*;
2929
use hir;
3030
use syntax::codemap::Span;
@@ -57,6 +57,7 @@ pub trait Visitor<'v> : Sized {
5757
fn visit_name(&mut self, _span: Span, _name: Name) {
5858
// Nothing to do.
5959
}
60+
fn visit_ident(&mut self, span: Span, ident: Ident) { walk_ident(self, span, ident) }
6061
fn visit_mod(&mut self, m: &'v Mod, _s: Span, _n: NodeId) { walk_mod(self, m) }
6162
fn visit_foreign_item(&mut self, i: &'v ForeignItem) { walk_foreign_item(self, i) }
6263
fn visit_item(&mut self, i: &'v Item) { walk_item(self, i) }
@@ -133,6 +134,10 @@ pub trait Visitor<'v> : Sized {
133134
fn visit_attribute(&mut self, _attr: &'v Attribute) {}
134135
}
135136

137+
pub fn walk_ident<'v, V: Visitor<'v>>(visitor: &mut V, span: Span, ident: Ident) {
138+
visitor.visit_name(span, ident.name);
139+
}
140+
136141
pub fn walk_crate<'v, V: Visitor<'v>>(visitor: &mut V, krate: &'v Crate) {
137142
visitor.visit_mod(&krate.module, krate.span, CRATE_NODE_ID);
138143
for attr in &krate.attrs {
@@ -409,7 +414,7 @@ pub fn walk_path_list_item<'v, V: Visitor<'v>>(visitor: &mut V, prefix: &'v Path
409414
pub fn walk_path_segment<'v, V: Visitor<'v>>(visitor: &mut V,
410415
path_span: Span,
411416
segment: &'v PathSegment) {
412-
visitor.visit_name(path_span, segment.identifier.name);
417+
visitor.visit_ident(path_span, segment.identifier);
413418
visitor.visit_path_parameters(path_span, &segment.parameters);
414419
}
415420

@@ -475,7 +480,7 @@ pub fn walk_pat<'v, V: Visitor<'v>>(visitor: &mut V, pattern: &'v Pat) {
475480
visitor.visit_pat(&**subpattern)
476481
}
477482
PatIdent(_, ref pth1, ref optional_subpattern) => {
478-
visitor.visit_name(pth1.span, pth1.node.name);
483+
visitor.visit_ident(pth1.span, pth1.node);
479484
match *optional_subpattern {
480485
None => {}
481486
Some(ref subpattern) => visitor.visit_pat(&**subpattern),

0 commit comments

Comments
 (0)