Skip to content

Commit 318842a

Browse files
committed
Refactor: LifetimeName is Name; use name, not ident, for such fields.
After PR rust-lang#12451 landed, lifetimes carry a `Name` instead of an `Ident`. But that PR did not change the field names in `ast.rs` to `name` instead of the prevous `ident`. This impedes hacking on the code, since you are using `foo.ident` in a content expecting a `Name` half the time. We may or may not revert PR rust-lang#12451 in the future (for unrelated reasons). But in the mean time, here are two changes to ease working with the existing code: * Adding the `ast::LifetimeName` alias eases swapping in a newtype struct when hacking, or changing the alias to `Ident` in the future. * Renaming the `ident` fields of type `LifetimeName` to be `name` instead makes the code look much saner.
1 parent 47a1df7 commit 318842a

File tree

16 files changed

+46
-41
lines changed

16 files changed

+46
-41
lines changed

src/librustc/metadata/decoder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ fn item_region_param_defs(item_doc: ebml::Doc, cdata: Cmd)
272272
tag_region_param_def_def_id);
273273
let def_id = reader::with_doc_data(def_id_doc, parse_def_id);
274274
let def_id = translate_def_id(cdata, def_id);
275-
v.push(ty::RegionParameterDef { ident: ident.name,
275+
v.push(ty::RegionParameterDef { name: ident.name,
276276
def_id: def_id });
277277
true
278278
});

src/librustc/metadata/encoder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ fn encode_region_param_defs(ebml_w: &mut writer::Encoder,
190190
ebml_w.start_tag(tag_region_param_def);
191191

192192
ebml_w.start_tag(tag_region_param_def_ident);
193-
encode_name(ebml_w, param.ident);
193+
encode_name(ebml_w, param.name);
194194
ebml_w.end_tag();
195195

196196
ebml_w.wr_tagged_str(tag_region_param_def_def_id,

src/librustc/metadata/tyencode.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,11 @@ fn enc_region(w: &mut MemWriter, cx: @ctxt, r: ty::Region) {
175175
enc_bound_region(w, cx, br);
176176
mywrite!(w, "]");
177177
}
178-
ty::ReEarlyBound(node_id, index, ident) => {
178+
ty::ReEarlyBound(node_id, index, name) => {
179179
mywrite!(w, "B[{}|{}|{}]",
180180
node_id,
181181
index,
182-
token::get_name(ident));
182+
token::get_name(name));
183183
}
184184
ty::ReFree(ref fr) => {
185185
mywrite!(w, "f[{}|", fr.scope_id);
@@ -207,10 +207,10 @@ fn enc_bound_region(w: &mut MemWriter, cx: @ctxt, br: ty::BoundRegion) {
207207
ty::BrAnon(idx) => {
208208
mywrite!(w, "a{}|", idx);
209209
}
210-
ty::BrNamed(d, s) => {
210+
ty::BrNamed(d, name) => {
211211
mywrite!(w, "[{}|{}]",
212212
(cx.ds)(d),
213-
token::get_name(s));
213+
token::get_name(name));
214214
}
215215
ty::BrFresh(id) => {
216216
mywrite!(w, "f{}|", id);

src/librustc/middle/resolve_lifetime.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ impl<'a> Visitor<Scope<'a>> for LifetimeContext {
147147
fn visit_lifetime_ref(&mut self,
148148
lifetime_ref: &ast::Lifetime,
149149
scope: Scope<'a>) {
150-
if lifetime_ref.ident == special_idents::statik.name {
150+
if lifetime_ref.name == special_idents::statik.name {
151151
self.insert_lifetime(lifetime_ref, ast::DefStaticRegion);
152152
return;
153153
}
@@ -264,7 +264,7 @@ impl LifetimeContext {
264264
self.sess.span_err(
265265
lifetime_ref.span,
266266
format!("use of undeclared lifetime name `'{}`",
267-
token::get_name(lifetime_ref.ident)));
267+
token::get_name(lifetime_ref.name)));
268268
}
269269

270270
fn check_lifetime_names(&self, lifetimes: &OptVec<ast::Lifetime>) {
@@ -273,23 +273,23 @@ impl LifetimeContext {
273273

274274
let special_idents = [special_idents::statik];
275275
for lifetime in lifetimes.iter() {
276-
if special_idents.iter().any(|&i| i.name == lifetime.ident) {
276+
if special_idents.iter().any(|&i| i.name == lifetime.name) {
277277
self.sess.span_err(
278278
lifetime.span,
279279
format!("illegal lifetime parameter name: `{}`",
280-
token::get_name(lifetime.ident)));
280+
token::get_name(lifetime.name)));
281281
}
282282
}
283283

284284
for j in range(i + 1, lifetimes.len()) {
285285
let lifetime_j = lifetimes.get(j);
286286

287-
if lifetime_i.ident == lifetime_j.ident {
287+
if lifetime_i.name == lifetime_j.name {
288288
self.sess.span_err(
289289
lifetime_j.span,
290290
format!("lifetime name `'{}` declared twice in \
291291
the same scope",
292-
token::get_name(lifetime_j.ident)));
292+
token::get_name(lifetime_j.name)));
293293
}
294294
}
295295
}
@@ -317,7 +317,7 @@ fn search_lifetimes(lifetimes: &OptVec<ast::Lifetime>,
317317
lifetime_ref: &ast::Lifetime)
318318
-> Option<(uint, ast::NodeId)> {
319319
for (i, lifetime_decl) in lifetimes.iter().enumerate() {
320-
if lifetime_decl.ident == lifetime_ref.ident {
320+
if lifetime_decl.name == lifetime_ref.name {
321321
return Some((i, lifetime_decl.id));
322322
}
323323
}

src/librustc/middle/ty.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ pub enum Region {
466466
// Region bound in a type or fn declaration which will be
467467
// substituted 'early' -- that is, at the same time when type
468468
// parameters are substituted.
469-
ReEarlyBound(/* param id */ ast::NodeId, /*index*/ uint, ast::Name),
469+
ReEarlyBound(/* param id */ ast::NodeId, /*index*/ uint, ast::LifetimeName),
470470

471471
// Region bound in a function scope, which will be substituted when the
472472
// function is called. The first argument must be the `binder_id` of
@@ -636,7 +636,7 @@ pub enum BoundRegion {
636636
///
637637
/// The def-id is needed to distinguish free regions in
638638
/// the event of shadowing.
639-
BrNamed(ast::DefId, ast::Name),
639+
BrNamed(ast::DefId, ast::LifetimeName),
640640

641641
/// Fresh bound identifiers created during GLB computations.
642642
BrFresh(uint),
@@ -985,7 +985,7 @@ pub struct TypeParameterDef {
985985

986986
#[deriving(Encodable, Decodable, Clone)]
987987
pub struct RegionParameterDef {
988-
ident: ast::Name,
988+
name: ast::LifetimeName,
989989
def_id: ast::DefId,
990990
}
991991

@@ -5114,7 +5114,7 @@ pub fn construct_parameter_environment(
51145114
let region_params = item_region_params.iter().
51155115
map(|r| ty::ReFree(ty::FreeRegion {
51165116
scope_id: free_id,
5117-
bound_region: ty::BrNamed(r.def_id, r.ident)})).
5117+
bound_region: ty::BrNamed(r.def_id, r.name)})).
51185118
collect();
51195119

51205120
let free_substs = substs {

src/librustc/middle/typeck/astconv.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,18 +92,18 @@ pub fn ast_region_to_region(tcx: ty::ctxt, lifetime: &ast::Lifetime)
9292

9393
Some(&ast::DefLateBoundRegion(binder_id, _, id)) => {
9494
ty::ReLateBound(binder_id, ty::BrNamed(ast_util::local_def(id),
95-
lifetime.ident))
95+
lifetime.name))
9696
}
9797

9898
Some(&ast::DefEarlyBoundRegion(index, id)) => {
99-
ty::ReEarlyBound(id, index, lifetime.ident)
99+
ty::ReEarlyBound(id, index, lifetime.name)
100100
}
101101

102102
Some(&ast::DefFreeRegion(scope_id, id)) => {
103103
ty::ReFree(ty::FreeRegion {
104104
scope_id: scope_id,
105105
bound_region: ty::BrNamed(ast_util::local_def(id),
106-
lifetime.ident)
106+
lifetime.name)
107107
})
108108
}
109109
};

src/librustc/middle/typeck/check/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -893,7 +893,7 @@ fn compare_impl_method(tcx: ty::ctxt,
893893
impl_generics.region_param_defs().iter().
894894
map(|l| ty::ReFree(ty::FreeRegion {
895895
scope_id: impl_m_body_id,
896-
bound_region: ty::BrNamed(l.def_id, l.ident)})).
896+
bound_region: ty::BrNamed(l.def_id, l.name)})).
897897
collect();
898898
let dummy_substs = ty::substs {
899899
tps: vec::append(dummy_impl_tps, dummy_method_tps),

src/librustc/middle/typeck/collect.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ pub fn ensure_trait_methods(ccx: &CrateCtxt, trait_id: ast::NodeId) {
310310
let rps_from_trait =
311311
trait_ty_generics.region_param_defs().iter().
312312
enumerate().
313-
map(|(index,d)| ty::ReEarlyBound(d.def_id.node, index, d.ident)).
313+
map(|(index,d)| ty::ReEarlyBound(d.def_id.node, index, d.name)).
314314
collect();
315315

316316
// build up the substitution from
@@ -950,7 +950,7 @@ pub fn ty_generics(ccx: &CrateCtxt,
950950
base_index: uint) -> ty::Generics {
951951
return ty::Generics {
952952
region_param_defs: Rc::new(generics.lifetimes.iter().map(|l| {
953-
ty::RegionParameterDef { ident: l.ident,
953+
ty::RegionParameterDef { name: l.name,
954954
def_id: local_def(l.id) }
955955
}).collect()),
956956
type_param_defs: Rc::new(generics.ty_params.mapi_to_vec(|offset, param| {
@@ -1065,7 +1065,7 @@ pub fn mk_item_substs(ccx: &CrateCtxt,
10651065

10661066
let regions: OptVec<ty::Region> =
10671067
ty_generics.region_param_defs().iter().enumerate().map(
1068-
|(i, l)| ty::ReEarlyBound(l.def_id.node, i, l.ident)).collect();
1068+
|(i, l)| ty::ReEarlyBound(l.def_id.node, i, l.name)).collect();
10691069

10701070
substs {regions: ty::NonerasedRegions(regions),
10711071
self_ty: self_ty,

src/librustc/middle/typeck/rscope.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,5 +78,5 @@ pub fn bound_type_regions(defs: &[ty::RegionParameterDef])
7878
-> OptVec<ty::Region> {
7979
assert!(defs.iter().all(|def| def.def_id.krate == ast::LOCAL_CRATE));
8080
defs.iter().enumerate().map(
81-
|(i, def)| ty::ReEarlyBound(def.def_id.node, i, def.ident)).collect()
81+
|(i, def)| ty::ReEarlyBound(def.def_id.node, i, def.name)).collect()
8282
}

src/librustc/util/ppaux.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,9 @@ pub fn bound_region_to_str(cx: ctxt,
162162
}
163163

164164
match br {
165-
BrNamed(_, ident) => format!("{}'{}{}", prefix,
166-
token::get_name(ident), space_str),
165+
BrNamed(_, name) => format!("{}'{}{}", prefix,
166+
token::get_name(name),
167+
space_str),
167168
BrAnon(_) => prefix.to_str(),
168169
BrFresh(_) => prefix.to_str(),
169170
}
@@ -225,7 +226,7 @@ pub fn region_to_str(cx: ctxt, prefix: &str, space: bool, region: Region) -> ~st
225226
// `explain_region()` or `note_and_explain_region()`.
226227
match region {
227228
ty::ReScope(_) => prefix.to_str(),
228-
ty::ReEarlyBound(_, _, ident) => token::get_name(ident).get().to_str(),
229+
ty::ReEarlyBound(_, _, name) => token::get_name(name).get().to_str(),
229230
ty::ReLateBound(_, br) => bound_region_to_str(cx, prefix, space, br),
230231
ty::ReFree(ref fr) => bound_region_to_str(cx, prefix, space, fr.bound_region),
231232
ty::ReInfer(ReSkolemized(_, br)) => {
@@ -630,7 +631,7 @@ impl Repr for ty::TypeParameterDef {
630631
impl Repr for ty::RegionParameterDef {
631632
fn repr(&self, _tcx: ctxt) -> ~str {
632633
format!("RegionParameterDef({}, {:?})",
633-
token::get_name(self.ident),
634+
token::get_name(self.name),
634635
self.def_id)
635636
}
636637
}
@@ -716,9 +717,9 @@ impl Repr for ty::BoundRegion {
716717
fn repr(&self, tcx: ctxt) -> ~str {
717718
match *self {
718719
ty::BrAnon(id) => format!("BrAnon({})", id),
719-
ty::BrNamed(id, ident) => format!("BrNamed({}, {})",
720-
id.repr(tcx),
721-
token::get_name(ident)),
720+
ty::BrNamed(id, name) => format!("BrNamed({}, {})",
721+
id.repr(tcx),
722+
token::get_name(name)),
722723
ty::BrFresh(id) => format!("BrFresh({})", id),
723724
}
724725
}
@@ -727,9 +728,9 @@ impl Repr for ty::BoundRegion {
727728
impl Repr for ty::Region {
728729
fn repr(&self, tcx: ctxt) -> ~str {
729730
match *self {
730-
ty::ReEarlyBound(id, index, ident) => {
731+
ty::ReEarlyBound(id, index, name) => {
731732
format!("ReEarlyBound({}, {}, {})",
732-
id, index, token::get_name(ident))
733+
id, index, token::get_name(name))
733734
}
734735

735736
ty::ReLateBound(binder_id, ref bound_region) => {

src/librustdoc/clean.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ impl Lifetime {
307307

308308
impl Clean<Lifetime> for ast::Lifetime {
309309
fn clean(&self) -> Lifetime {
310-
Lifetime(token::get_name(self.ident).get().to_owned())
310+
Lifetime(token::get_name(self.name).get().to_owned())
311311
}
312312
}
313313

src/libsyntax/ast.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,15 @@ impl<D:Decoder> Decodable<D> for Ident {
146146
/// Function name (not all functions have names)
147147
pub type FnIdent = Option<Ident>;
148148

149+
// Factor out type used for lifetime name to ease switching to/from
150+
// hygiene-respecting ast::Ident.
151+
pub type LifetimeName = Name;
152+
149153
#[deriving(Clone, Eq, Encodable, Decodable, Hash)]
150154
pub struct Lifetime {
151155
id: NodeId,
152156
span: Span,
153-
ident: Name
157+
name: LifetimeName
154158
}
155159

156160
// a "Path" is essentially Rust's notion of a name;

src/libsyntax/ext/build.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,8 +411,8 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
411411
ast::TraitTyParamBound(self.trait_ref(path))
412412
}
413413

414-
fn lifetime(&self, span: Span, ident: ast::Name) -> ast::Lifetime {
415-
ast::Lifetime { id: ast::DUMMY_NODE_ID, span: span, ident: ident }
414+
fn lifetime(&self, span: Span, name: ast::LifetimeName) -> ast::Lifetime {
415+
ast::Lifetime { id: ast::DUMMY_NODE_ID, span: span, name: name }
416416
}
417417

418418
fn stmt_expr(&self, expr: @ast::Expr) -> @ast::Stmt {

src/libsyntax/fold.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ pub fn fold_lifetime<T: Folder>(l: &Lifetime, fld: &mut T) -> Lifetime {
433433
Lifetime {
434434
id: fld.new_id(l.id),
435435
span: fld.new_span(l.span),
436-
ident: l.ident
436+
name: l.name
437437
}
438438
}
439439

src/libsyntax/parse/parser.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1597,7 +1597,7 @@ impl Parser {
15971597
return ast::Lifetime {
15981598
id: ast::DUMMY_NODE_ID,
15991599
span: span,
1600-
ident: i.name
1600+
name: i.name
16011601
};
16021602
}
16031603
_ => {

src/libsyntax/print/pprust.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1951,7 +1951,7 @@ pub fn print_bounds(s: &mut State, bounds: &OptVec<ast::TyParamBound>,
19511951
pub fn print_lifetime(s: &mut State,
19521952
lifetime: &ast::Lifetime) -> io::IoResult<()> {
19531953
try!(word(&mut s.s, "'"));
1954-
print_name(s, lifetime.ident)
1954+
print_name(s, lifetime.name)
19551955
}
19561956

19571957
pub fn print_generics(s: &mut State,

0 commit comments

Comments
 (0)