Skip to content

Commit aad347c

Browse files
committed
Remove hir::Ident
1 parent 8310de8 commit aad347c

File tree

32 files changed

+123
-226
lines changed

32 files changed

+123
-226
lines changed

src/librustc/cfg/construct.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -285,15 +285,15 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
285285
}
286286

287287
hir::ExprBreak(label) => {
288-
let loop_scope = self.find_scope(expr, label.map(|l| l.node.name));
288+
let loop_scope = self.find_scope(expr, label.map(|l| l.node));
289289
let b = self.add_ast_node(expr.id, &[pred]);
290290
self.add_exiting_edge(expr, b,
291291
loop_scope, loop_scope.break_index);
292292
self.add_unreachable_node()
293293
}
294294

295295
hir::ExprAgain(label) => {
296-
let loop_scope = self.find_scope(expr, label.map(|l| l.node.name));
296+
let loop_scope = self.find_scope(expr, label.map(|l| l.node));
297297
let a = self.add_ast_node(expr.id, &[pred]);
298298
self.add_exiting_edge(expr, a,
299299
loop_scope, loop_scope.continue_index);

src/librustc/hir/fold.rs

+11-19
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,6 @@ pub trait Folder : Sized {
126126
noop_fold_name(n, self)
127127
}
128128

129-
fn fold_ident(&mut self, i: Ident) -> Ident {
130-
noop_fold_ident(i, self)
131-
}
132-
133129
fn fold_usize(&mut self, i: usize) -> usize {
134130
noop_fold_usize(i, self)
135131
}
@@ -407,20 +403,16 @@ pub fn noop_fold_name<T: Folder>(n: Name, _: &mut T) -> Name {
407403
n
408404
}
409405

410-
pub fn noop_fold_ident<T: Folder>(i: Ident, _: &mut T) -> Ident {
411-
i
412-
}
413-
414406
pub fn noop_fold_usize<T: Folder>(i: usize, _: &mut T) -> usize {
415407
i
416408
}
417409

418410
pub fn noop_fold_path<T: Folder>(Path { global, segments, span }: Path, fld: &mut T) -> Path {
419411
Path {
420412
global: global,
421-
segments: segments.move_map(|PathSegment { identifier, parameters }| {
413+
segments: segments.move_map(|PathSegment { name, parameters }| {
422414
PathSegment {
423-
identifier: fld.fold_ident(identifier),
415+
name: fld.fold_name(name),
424416
parameters: fld.fold_path_parameters(parameters),
425417
}
426418
}),
@@ -926,7 +918,7 @@ pub fn noop_fold_pat<T: Folder>(p: P<Pat>, folder: &mut T) -> P<Pat> {
926918
PatKind::Ident(binding_mode,
927919
Spanned {
928920
span: folder.new_span(pth1.span),
929-
node: folder.fold_ident(pth1.node),
921+
node: folder.fold_name(pth1.node),
930922
},
931923
sub.map(|x| folder.fold_pat(x)))
932924
}
@@ -1014,14 +1006,14 @@ pub fn noop_fold_expr<T: Folder>(Expr { id, node, span, attrs }: Expr, folder: &
10141006
folder.fold_block(tr),
10151007
fl.map(|x| folder.fold_expr(x)))
10161008
}
1017-
ExprWhile(cond, body, opt_ident) => {
1009+
ExprWhile(cond, body, opt_name) => {
10181010
ExprWhile(folder.fold_expr(cond),
10191011
folder.fold_block(body),
1020-
opt_ident.map(|i| folder.fold_ident(i)))
1012+
opt_name.map(|i| folder.fold_name(i)))
10211013
}
1022-
ExprLoop(body, opt_ident) => {
1014+
ExprLoop(body, opt_name) => {
10231015
ExprLoop(folder.fold_block(body),
1024-
opt_ident.map(|i| folder.fold_ident(i)))
1016+
opt_name.map(|i| folder.fold_name(i)))
10251017
}
10261018
ExprMatch(expr, arms, source) => {
10271019
ExprMatch(folder.fold_expr(expr),
@@ -1061,11 +1053,11 @@ pub fn noop_fold_expr<T: Folder>(Expr { id, node, span, attrs }: Expr, folder: &
10611053
});
10621054
ExprPath(qself, folder.fold_path(path))
10631055
}
1064-
ExprBreak(opt_ident) => ExprBreak(opt_ident.map(|label| {
1065-
respan(folder.new_span(label.span), folder.fold_ident(label.node))
1056+
ExprBreak(opt_name) => ExprBreak(opt_name.map(|label| {
1057+
respan(folder.new_span(label.span), folder.fold_name(label.node))
10661058
})),
1067-
ExprAgain(opt_ident) => ExprAgain(opt_ident.map(|label| {
1068-
respan(folder.new_span(label.span), folder.fold_ident(label.node))
1059+
ExprAgain(opt_name) => ExprAgain(opt_name.map(|label| {
1060+
respan(folder.new_span(label.span), folder.fold_name(label.node))
10691061
})),
10701062
ExprRet(e) => ExprRet(e.map(|x| folder.fold_expr(x))),
10711063
ExprInlineAsm(asm, outputs, inputs) => {

src/librustc/hir/intravisit.rs

+9-22
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,6 @@ pub trait Visitor<'v> : Sized {
9797
fn visit_name(&mut self, _span: Span, _name: Name) {
9898
// Nothing to do.
9999
}
100-
fn visit_ident(&mut self, span: Span, ident: Ident) {
101-
walk_ident(self, span, ident);
102-
}
103100
fn visit_mod(&mut self, m: &'v Mod, _s: Span, _n: NodeId) {
104101
walk_mod(self, m)
105102
}
@@ -211,16 +208,6 @@ pub fn walk_opt_name<'v, V: Visitor<'v>>(visitor: &mut V, span: Span, opt_name:
211208
}
212209
}
213210

214-
pub fn walk_opt_ident<'v, V: Visitor<'v>>(visitor: &mut V, span: Span, opt_ident: Option<Ident>) {
215-
for ident in opt_ident {
216-
visitor.visit_ident(span, ident);
217-
}
218-
}
219-
220-
pub fn walk_ident<'v, V: Visitor<'v>>(visitor: &mut V, span: Span, ident: Ident) {
221-
visitor.visit_name(span, ident.name);
222-
}
223-
224211
/// Walks the contents of a crate. See also `Crate::visit_all_items`.
225212
pub fn walk_crate<'v, V: Visitor<'v>>(visitor: &mut V, krate: &'v Crate) {
226213
visitor.visit_mod(&krate.module, krate.span, CRATE_NODE_ID);
@@ -439,7 +426,7 @@ pub fn walk_path_list_item<'v, V: Visitor<'v>>(visitor: &mut V,
439426
pub fn walk_path_segment<'v, V: Visitor<'v>>(visitor: &mut V,
440427
path_span: Span,
441428
segment: &'v PathSegment) {
442-
visitor.visit_ident(path_span, segment.identifier);
429+
visitor.visit_name(path_span, segment.name);
443430
visitor.visit_path_parameters(path_span, &segment.parameters);
444431
}
445432

@@ -495,7 +482,7 @@ pub fn walk_pat<'v, V: Visitor<'v>>(visitor: &mut V, pattern: &'v Pat) {
495482
visitor.visit_pat(subpattern)
496483
}
497484
PatKind::Ident(_, ref pth1, ref optional_subpattern) => {
498-
visitor.visit_ident(pth1.span, pth1.node);
485+
visitor.visit_name(pth1.span, pth1.node);
499486
walk_list!(visitor, visit_pat, optional_subpattern);
500487
}
501488
PatKind::Lit(ref expression) => visitor.visit_expr(expression),
@@ -750,14 +737,14 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {
750737
visitor.visit_block(if_block);
751738
walk_list!(visitor, visit_expr, optional_else);
752739
}
753-
ExprWhile(ref subexpression, ref block, opt_ident) => {
740+
ExprWhile(ref subexpression, ref block, opt_name) => {
754741
visitor.visit_expr(subexpression);
755742
visitor.visit_block(block);
756-
walk_opt_ident(visitor, expression.span, opt_ident)
743+
walk_opt_name(visitor, expression.span, opt_name)
757744
}
758-
ExprLoop(ref block, opt_ident) => {
745+
ExprLoop(ref block, opt_name) => {
759746
visitor.visit_block(block);
760-
walk_opt_ident(visitor, expression.span, opt_ident)
747+
walk_opt_name(visitor, expression.span, opt_name)
761748
}
762749
ExprMatch(ref subexpression, ref arms, _) => {
763750
visitor.visit_expr(subexpression);
@@ -796,9 +783,9 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {
796783
}
797784
visitor.visit_path(path, expression.id)
798785
}
799-
ExprBreak(ref opt_sp_ident) | ExprAgain(ref opt_sp_ident) => {
800-
for sp_ident in opt_sp_ident {
801-
visitor.visit_ident(sp_ident.span, sp_ident.node);
786+
ExprBreak(ref opt_sp_name) | ExprAgain(ref opt_sp_name) => {
787+
for sp_name in opt_sp_name {
788+
visitor.visit_name(sp_name.span, sp_name.node);
802789
}
803790
}
804791
ExprRet(ref optional_expression) => {

src/librustc/hir/lowering.rs

+24-27
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ impl<'a> LoweringContext<'a> {
150150
self.id_assigner.next_node_id()
151151
}
152152

153-
fn str_to_ident(&self, s: &'static str) -> hir::Ident {
154-
hir::Ident::from_name(token::gensym(s))
153+
fn str_to_ident(&self, s: &'static str) -> Name {
154+
token::gensym(s)
155155
}
156156

157157
fn with_parent_def<T, F>(&mut self, parent_id: NodeId, f: F) -> T
@@ -169,11 +169,8 @@ impl<'a> LoweringContext<'a> {
169169
result
170170
}
171171

172-
fn lower_ident(&mut self, ident: Ident) -> hir::Ident {
173-
hir::Ident {
174-
name: mtwt::resolve(ident),
175-
unhygienic_name: ident.name,
176-
}
172+
fn lower_ident(&mut self, ident: Ident) -> Name {
173+
mtwt::resolve(ident)
177174
}
178175

179176
fn lower_attrs(&mut self, attrs: &Vec<Attribute>) -> hir::HirVec<Attribute> {
@@ -329,10 +326,10 @@ impl<'a> LoweringContext<'a> {
329326
.iter()
330327
.map(|&PathSegment { identifier, ref parameters }| {
331328
hir::PathSegment {
332-
identifier: if maybe_hygienic {
329+
name: if maybe_hygienic {
333330
self.lower_ident(identifier)
334331
} else {
335-
hir::Ident::from_name(identifier.name)
332+
identifier.name
336333
},
337334
parameters: self.lower_path_parameters(parameters),
338335
}
@@ -1692,7 +1689,7 @@ impl<'a> LoweringContext<'a> {
16921689
self.expr(span, hir::ExprCall(e, args), attrs)
16931690
}
16941691

1695-
fn expr_ident(&mut self, span: Span, id: hir::Ident, attrs: ThinAttributes, binding: NodeId)
1692+
fn expr_ident(&mut self, span: Span, id: Name, attrs: ThinAttributes, binding: NodeId)
16961693
-> P<hir::Expr> {
16971694
let expr_path = hir::ExprPath(None, self.path_ident(span, id));
16981695
let expr = self.expr(span, expr_path, attrs);
@@ -1760,7 +1757,7 @@ impl<'a> LoweringContext<'a> {
17601757
fn stmt_let(&mut self,
17611758
sp: Span,
17621759
mutbl: bool,
1763-
ident: hir::Ident,
1760+
ident: Name,
17641761
ex: P<hir::Expr>,
17651762
attrs: ThinAttributes)
17661763
-> (hir::Stmt, NodeId) {
@@ -1834,24 +1831,24 @@ impl<'a> LoweringContext<'a> {
18341831
pat
18351832
}
18361833

1837-
fn pat_ident(&mut self, span: Span, ident: hir::Ident) -> P<hir::Pat> {
1838-
self.pat_ident_binding_mode(span, ident, hir::BindByValue(hir::MutImmutable))
1834+
fn pat_ident(&mut self, span: Span, name: Name) -> P<hir::Pat> {
1835+
self.pat_ident_binding_mode(span, name, hir::BindByValue(hir::MutImmutable))
18391836
}
18401837

1841-
fn pat_ident_binding_mode(&mut self, span: Span, ident: hir::Ident, bm: hir::BindingMode)
1838+
fn pat_ident_binding_mode(&mut self, span: Span, name: Name, bm: hir::BindingMode)
18421839
-> P<hir::Pat> {
18431840
let pat_ident = hir::PatKind::Ident(bm,
18441841
Spanned {
18451842
span: span,
1846-
node: ident,
1843+
node: name,
18471844
},
18481845
None);
18491846

18501847
let pat = self.pat(span, pat_ident);
18511848

18521849
let parent_def = self.parent_def;
18531850
let def = self.resolver.definitions().map(|defs| {
1854-
let def_path_data = DefPathData::Binding(ident.name);
1851+
let def_path_data = DefPathData::Binding(name);
18551852
let def_index = defs.create_def_with_parent(parent_def, pat.id, def_path_data);
18561853
Def::Local(DefId::local(def_index), pat.id)
18571854
}).unwrap_or(Def::Err);
@@ -1872,36 +1869,36 @@ impl<'a> LoweringContext<'a> {
18721869
})
18731870
}
18741871

1875-
fn path_ident(&mut self, span: Span, id: hir::Ident) -> hir::Path {
1872+
fn path_ident(&mut self, span: Span, id: Name) -> hir::Path {
18761873
self.path(span, vec![id])
18771874
}
18781875

1879-
fn path(&mut self, span: Span, strs: Vec<hir::Ident>) -> hir::Path {
1876+
fn path(&mut self, span: Span, strs: Vec<Name>) -> hir::Path {
18801877
self.path_all(span, false, strs, hir::HirVec::new(), hir::HirVec::new(), hir::HirVec::new())
18811878
}
18821879

1883-
fn path_global(&mut self, span: Span, strs: Vec<hir::Ident>) -> hir::Path {
1880+
fn path_global(&mut self, span: Span, strs: Vec<Name>) -> hir::Path {
18841881
self.path_all(span, true, strs, hir::HirVec::new(), hir::HirVec::new(), hir::HirVec::new())
18851882
}
18861883

18871884
fn path_all(&mut self,
18881885
sp: Span,
18891886
global: bool,
1890-
mut idents: Vec<hir::Ident>,
1887+
mut names: Vec<Name>,
18911888
lifetimes: hir::HirVec<hir::Lifetime>,
18921889
types: hir::HirVec<P<hir::Ty>>,
18931890
bindings: hir::HirVec<hir::TypeBinding>)
18941891
-> hir::Path {
1895-
let last_identifier = idents.pop().unwrap();
1896-
let mut segments: Vec<hir::PathSegment> = idents.into_iter().map(|ident| {
1892+
let last_identifier = names.pop().unwrap();
1893+
let mut segments: Vec<hir::PathSegment> = names.into_iter().map(|name| {
18971894
hir::PathSegment {
1898-
identifier: ident,
1895+
name: name,
18991896
parameters: hir::PathParameters::none(),
19001897
}
19011898
}).collect();
19021899

19031900
segments.push(hir::PathSegment {
1904-
identifier: last_identifier,
1901+
name: last_identifier,
19051902
parameters: hir::AngleBracketedParameters(hir::AngleBracketedParameterData {
19061903
lifetimes: lifetimes,
19071904
types: types,
@@ -1915,12 +1912,12 @@ impl<'a> LoweringContext<'a> {
19151912
}
19161913
}
19171914

1918-
fn std_path(&mut self, components: &[&str]) -> Vec<hir::Ident> {
1915+
fn std_path(&mut self, components: &[&str]) -> Vec<Name> {
19191916
let mut v = Vec::new();
19201917
if let Some(s) = self.crate_root {
1921-
v.push(hir::Ident::from_name(token::intern(s)));
1918+
v.push(token::intern(s));
19221919
}
1923-
v.extend(components.iter().map(|s| hir::Ident::from_name(token::intern(s))));
1920+
v.extend(components.iter().map(|s| token::intern(s)));
19241921
return v;
19251922
}
19261923

src/librustc/hir/map/def_collector.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -396,8 +396,8 @@ impl<'ast> intravisit::Visitor<'ast> for DefCollector<'ast> {
396396
fn visit_pat(&mut self, pat: &'ast hir::Pat) {
397397
let parent_def = self.parent_def;
398398

399-
if let hir::PatKind::Ident(_, id, _) = pat.node {
400-
let def = self.create_def(pat.id, DefPathData::Binding(id.node.name));
399+
if let hir::PatKind::Ident(_, name, _) = pat.node {
400+
let def = self.create_def(pat.id, DefPathData::Binding(name.node));
401401
self.parent_def = Some(def);
402402
}
403403

src/librustc/hir/map/mod.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -562,9 +562,7 @@ impl<'ast> Map<'ast> {
562562
NodeVariant(v) => v.node.name,
563563
NodeLifetime(lt) => lt.name,
564564
NodeTyParam(tp) => tp.name,
565-
NodeLocal(&Pat { node: PatKind::Ident(_,l,_), .. }) => {
566-
l.node.name
567-
},
565+
NodeLocal(&Pat { node: PatKind::Ident(_,l,_), .. }) => l.node,
568566
NodeStructCtor(_) => self.name(self.get_parent(id)),
569567
_ => bug!("no name for {}", self.node_to_string(id))
570568
}

0 commit comments

Comments
 (0)