diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 47fcc4534897c..e45d7ad31a410 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -270,7 +270,7 @@ fn item_region_param_defs(item_doc: ebml::Doc, cdata: Cmd) tag_region_param_def_def_id); let def_id = reader::with_doc_data(def_id_doc, parse_def_id); let def_id = translate_def_id(cdata, def_id); - v.push(ty::RegionParameterDef { ident: ident, + v.push(ty::RegionParameterDef { ident: ident.name, def_id: def_id }); true }); diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index d2b843cdcf7e9..ee65f7ddf499b 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -111,8 +111,8 @@ pub fn reachable(ecx: &EncodeContext, id: NodeId) -> bool { reachable.get().contains(&id) } -fn encode_name(ebml_w: &mut writer::Encoder, name: Ident) { - ebml_w.wr_tagged_str(tag_paths_data_name, token::get_ident(name).get()); +fn encode_name(ebml_w: &mut writer::Encoder, name: Name) { + ebml_w.wr_tagged_str(tag_paths_data_name, token::get_name(name).get()); } fn encode_impl_type_basename(ebml_w: &mut writer::Encoder, name: Ident) { @@ -312,7 +312,7 @@ fn encode_struct_fields(ebml_w: &mut writer::Encoder, NamedField(ident, vis) => { ebml_w.start_tag(tag_item_field); encode_struct_field_family(ebml_w, vis); - encode_name(ebml_w, ident); + encode_name(ebml_w, ident.name); encode_def_id(ebml_w, local_def(f.node.id)); ebml_w.end_tag(); } @@ -352,7 +352,7 @@ fn encode_enum_variant_info(ecx: &EncodeContext, ast::TupleVariantKind(_) => encode_family(ebml_w, 'v'), ast::StructVariantKind(_) => encode_family(ebml_w, 'V') } - encode_name(ebml_w, variant.node.name); + encode_name(ebml_w, variant.node.name.name); encode_parent_item(ebml_w, local_def(id)); encode_visibility(ebml_w, variant.node.vis); encode_attributes(ebml_w, variant.node.attrs); @@ -579,7 +579,7 @@ fn encode_info_for_mod(ecx: &EncodeContext, ebml_w.start_tag(tag_items_data_item); encode_def_id(ebml_w, local_def(id)); encode_family(ebml_w, 'm'); - encode_name(ebml_w, name); + encode_name(ebml_w, name.name); debug!("(encoding info for module) encoding info for module ID {}", id); // Encode info about all the module children. @@ -716,7 +716,7 @@ fn encode_info_for_struct(ecx: &EncodeContext, debug!("encode_info_for_struct: doing {} {}", token::get_ident(nm), id); encode_struct_field_family(ebml_w, vis); - encode_name(ebml_w, nm); + encode_name(ebml_w, nm.name); encode_type(ecx, ebml_w, node_id_to_type(tcx, id)); encode_def_id(ebml_w, local_def(id)); ebml_w.end_tag(); @@ -743,7 +743,7 @@ fn encode_info_for_struct_ctor(ecx: &EncodeContext, encode_family(ebml_w, 'f'); encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(ecx.tcx, local_def(ctor_id))); - encode_name(ebml_w, name); + encode_name(ebml_w, name.name); encode_type(ecx, ebml_w, node_id_to_type(ecx.tcx, ctor_id)); ecx.tcx.map.with_path(ctor_id, |path| encode_path(ebml_w, path)); encode_parent_item(ebml_w, local_def(struct_id)); @@ -766,7 +766,7 @@ fn encode_method_ty_fields(ecx: &EncodeContext, ebml_w: &mut writer::Encoder, method_ty: &ty::Method) { encode_def_id(ebml_w, method_ty.def_id); - encode_name(ebml_w, method_ty.ident); + encode_name(ebml_w, method_ty.ident.name); encode_ty_type_param_defs(ebml_w, ecx, method_ty.generics.type_param_defs(), tag_item_method_tps); @@ -916,7 +916,7 @@ fn encode_info_for_item(ecx: &EncodeContext, } encode_type(ecx, ebml_w, node_id_to_type(tcx, item.id)); encode_symbol(ecx, ebml_w, item.id); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_path(ebml_w, path); let inlineable = !ecx.non_inlineable_statics.borrow().get().contains(&item.id); @@ -934,7 +934,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_family(ebml_w, purity_fn_family(purity)); let tps_len = generics.ty_params.len(); encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(tcx, def_id)); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_path(ebml_w, path); encode_attributes(ebml_w, item.attrs); if tps_len > 0u || should_inline(item.attrs) { @@ -960,7 +960,7 @@ fn encode_info_for_item(ecx: &EncodeContext, ebml_w.start_tag(tag_items_data_item); encode_def_id(ebml_w, def_id); encode_family(ebml_w, 'n'); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_path(ebml_w, path); // Encode all the items in this module. @@ -978,7 +978,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_def_id(ebml_w, def_id); encode_family(ebml_w, 'y'); encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(tcx, def_id)); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_path(ebml_w, path); encode_visibility(ebml_w, vis); ebml_w.end_tag(); @@ -991,7 +991,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_family(ebml_w, 't'); encode_item_variances(ebml_w, ecx, item.id); encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(tcx, def_id)); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_attributes(ebml_w, item.attrs); for v in (*enum_definition).variants.iter() { encode_variant_id(ebml_w, local_def(v.node.id)); @@ -1030,7 +1030,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(tcx, def_id)); encode_item_variances(ebml_w, ecx, item.id); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_attributes(ebml_w, item.attrs); encode_path(ebml_w, path.clone()); encode_visibility(ebml_w, vis); @@ -1070,7 +1070,7 @@ fn encode_info_for_item(ecx: &EncodeContext, encode_def_id(ebml_w, def_id); encode_family(ebml_w, 'i'); encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(tcx, def_id)); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_attributes(ebml_w, item.attrs); match ty.node { ast::TyPath(ref path, ref bounds, _) if path.segments @@ -1134,7 +1134,7 @@ fn encode_info_for_item(ecx: &EncodeContext, tag_items_data_item_ty_param_bounds); encode_region_param_defs(ebml_w, trait_def.generics.region_param_defs()); encode_trait_ref(ebml_w, ecx, trait_def.trait_ref, tag_item_trait_ref); - encode_name(ebml_w, item.ident); + encode_name(ebml_w, item.ident.name); encode_attributes(ebml_w, item.attrs); encode_visibility(ebml_w, vis); for &method_def_id in ty::trait_method_def_ids(tcx, def_id).iter() { @@ -1255,7 +1255,7 @@ fn encode_info_for_foreign_item(ecx: &EncodeContext, encode_family(ebml_w, purity_fn_family(ImpureFn)); encode_bounds_and_type(ebml_w, ecx, &lookup_item_type(ecx.tcx,local_def(nitem.id))); - encode_name(ebml_w, nitem.ident); + encode_name(ebml_w, nitem.ident.name); if abi.is_intrinsic() { (ecx.encode_inlined_item)(ecx, ebml_w, IIForeignRef(nitem)); } else { @@ -1270,7 +1270,7 @@ fn encode_info_for_foreign_item(ecx: &EncodeContext, } encode_type(ecx, ebml_w, node_id_to_type(ecx.tcx, nitem.id)); encode_symbol(ecx, ebml_w, nitem.id); - encode_name(ebml_w, nitem.ident); + encode_name(ebml_w, nitem.ident.name); } } encode_path(ebml_w, path); diff --git a/src/librustc/metadata/tydecode.rs b/src/librustc/metadata/tydecode.rs index c78721cdf4c8a..21fe0e7539438 100644 --- a/src/librustc/metadata/tydecode.rs +++ b/src/librustc/metadata/tydecode.rs @@ -214,7 +214,7 @@ fn parse_bound_region(st: &mut PState, conv: conv_did) -> ty::BoundRegion { '[' => { let def = parse_def(st, RegionParameter, |x,y| conv(x,y)); let ident = token::str_to_ident(parse_str(st, ']')); - ty::BrNamed(def, ident) + ty::BrNamed(def, ident.name) } 'f' => { let id = parse_uint(st); @@ -242,7 +242,7 @@ fn parse_region(st: &mut PState, conv: conv_did) -> ty::Region { let index = parse_uint(st); assert_eq!(next(st), '|'); let nm = token::str_to_ident(parse_str(st, ']')); - ty::ReEarlyBound(node_id, index, nm) + ty::ReEarlyBound(node_id, index, nm.name) } 'f' => { assert_eq!(next(st), '['); diff --git a/src/librustc/metadata/tyencode.rs b/src/librustc/metadata/tyencode.rs index 545c66063916e..db0bcf7d029a8 100644 --- a/src/librustc/metadata/tyencode.rs +++ b/src/librustc/metadata/tyencode.rs @@ -179,7 +179,7 @@ fn enc_region(w: &mut MemWriter, cx: @ctxt, r: ty::Region) { mywrite!(w, "B[{}|{}|{}]", node_id, index, - token::get_ident(ident)); + token::get_name(ident)); } ty::ReFree(ref fr) => { mywrite!(w, "f[{}|", fr.scope_id); @@ -210,7 +210,7 @@ fn enc_bound_region(w: &mut MemWriter, cx: @ctxt, br: ty::BoundRegion) { ty::BrNamed(d, s) => { mywrite!(w, "[{}|{}]", (cx.ds)(d), - token::get_ident(s)); + token::get_name(s)); } ty::BrFresh(id) => { mywrite!(w, "f{}|", id); diff --git a/src/librustc/middle/resolve_lifetime.rs b/src/librustc/middle/resolve_lifetime.rs index 7b7bcc1784226..b3a975a13e4af 100644 --- a/src/librustc/middle/resolve_lifetime.rs +++ b/src/librustc/middle/resolve_lifetime.rs @@ -145,7 +145,7 @@ impl<'a> Visitor<&'a ScopeChain<'a>> for LifetimeContext { fn visit_lifetime_ref(&mut self, lifetime_ref: &ast::Lifetime, scope: &'a ScopeChain<'a>) { - if lifetime_ref.ident == special_idents::statik { + if lifetime_ref.ident == special_idents::statik.name { self.insert_lifetime(lifetime_ref, ast::DefStaticRegion); return; } @@ -262,7 +262,7 @@ impl LifetimeContext { self.sess.span_err( lifetime_ref.span, format!("use of undeclared lifetime name `'{}`", - token::get_ident(lifetime_ref.ident))); + token::get_name(lifetime_ref.ident))); } fn check_lifetime_names(&self, lifetimes: &OptVec) { @@ -271,11 +271,11 @@ impl LifetimeContext { let special_idents = [special_idents::statik]; for lifetime in lifetimes.iter() { - if special_idents.iter().any(|&i| i == lifetime.ident) { + if special_idents.iter().any(|&i| i.name == lifetime.ident) { self.sess.span_err( lifetime.span, format!("illegal lifetime parameter name: `{}`", - token::get_ident(lifetime.ident))); + token::get_name(lifetime.ident))); } } @@ -287,7 +287,7 @@ impl LifetimeContext { lifetime_j.span, format!("lifetime name `'{}` declared twice in \ the same scope", - token::get_ident(lifetime_j.ident))); + token::get_name(lifetime_j.ident))); } } } diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index f3016ff68a802..1fa2dbc165281 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -465,7 +465,7 @@ pub enum Region { // Region bound in a type or fn declaration which will be // substituted 'early' -- that is, at the same time when type // parameters are substituted. - ReEarlyBound(/* param id */ ast::NodeId, /*index*/ uint, ast::Ident), + ReEarlyBound(/* param id */ ast::NodeId, /*index*/ uint, ast::Name), // Region bound in a function scope, which will be substituted when the // function is called. The first argument must be the `binder_id` of @@ -635,7 +635,7 @@ pub enum BoundRegion { /// /// The def-id is needed to distinguish free regions in /// the event of shadowing. - BrNamed(ast::DefId, ast::Ident), + BrNamed(ast::DefId, ast::Name), /// Fresh bound identifiers created during GLB computations. BrFresh(uint), @@ -976,7 +976,7 @@ pub struct TypeParameterDef { #[deriving(Encodable, Decodable, Clone)] pub struct RegionParameterDef { - ident: ast::Ident, + ident: ast::Name, def_id: ast::DefId, } diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index 14d12b7f648dd..e430015b22146 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -163,7 +163,7 @@ pub fn bound_region_to_str(cx: ctxt, match br { BrNamed(_, ident) => format!("{}'{}{}", prefix, - token::get_ident(ident), space_str), + token::get_name(ident), space_str), BrAnon(_) => prefix.to_str(), BrFresh(_) => prefix.to_str(), } @@ -225,7 +225,7 @@ pub fn region_to_str(cx: ctxt, prefix: &str, space: bool, region: Region) -> ~st // `explain_region()` or `note_and_explain_region()`. match region { ty::ReScope(_) => prefix.to_str(), - ty::ReEarlyBound(_, _, ident) => token::get_ident(ident).get().to_str(), + ty::ReEarlyBound(_, _, ident) => token::get_name(ident).get().to_str(), ty::ReLateBound(_, br) => bound_region_to_str(cx, prefix, space, br), ty::ReFree(ref fr) => bound_region_to_str(cx, prefix, space, fr.bound_region), ty::ReInfer(ReSkolemized(_, br)) => { @@ -630,7 +630,7 @@ impl Repr for ty::TypeParameterDef { impl Repr for ty::RegionParameterDef { fn repr(&self, _tcx: ctxt) -> ~str { format!("RegionParameterDef({}, {:?})", - token::get_ident(self.ident), + token::get_name(self.ident), self.def_id) } } @@ -718,7 +718,7 @@ impl Repr for ty::BoundRegion { ty::BrAnon(id) => format!("BrAnon({})", id), ty::BrNamed(id, ident) => format!("BrNamed({}, {})", id.repr(tcx), - ident.repr(tcx)), + token::get_name(ident)), ty::BrFresh(id) => format!("BrFresh({})", id), } } @@ -729,7 +729,7 @@ impl Repr for ty::Region { match *self { ty::ReEarlyBound(id, index, ident) => { format!("ReEarlyBound({}, {}, {})", - id, index, ident.repr(tcx)) + id, index, token::get_name(ident)) } ty::ReLateBound(binder_id, ref bound_region) => { diff --git a/src/librustdoc/clean.rs b/src/librustdoc/clean.rs index 586323358c241..6e6276e0457b7 100644 --- a/src/librustdoc/clean.rs +++ b/src/librustdoc/clean.rs @@ -307,7 +307,7 @@ impl Lifetime { impl Clean for ast::Lifetime { fn clean(&self) -> Lifetime { - Lifetime(self.ident.clean()) + Lifetime(token::get_name(self.ident).get().to_owned()) } } diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index e8edc1a0dfc0e..8f3f1787a5874 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -144,8 +144,7 @@ pub type FnIdent = Option; pub struct Lifetime { id: NodeId, span: Span, - // FIXME #7743 : change this to Name! - ident: Ident + ident: Name } // a "Path" is essentially Rust's notion of a name; diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index d311a542ac689..2265e42af4df2 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -73,7 +73,7 @@ pub trait AstBuilder { fn trait_ref(&self, path: ast::Path) -> ast::TraitRef; fn typarambound(&self, path: ast::Path) -> ast::TyParamBound; - fn lifetime(&self, span: Span, ident: ast::Ident) -> ast::Lifetime; + fn lifetime(&self, span: Span, ident: ast::Name) -> ast::Lifetime; // statements fn stmt_expr(&self, expr: @ast::Expr) -> @ast::Stmt; @@ -408,7 +408,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> { ast::TraitTyParamBound(self.trait_ref(path)) } - fn lifetime(&self, span: Span, ident: ast::Ident) -> ast::Lifetime { + fn lifetime(&self, span: Span, ident: ast::Name) -> ast::Lifetime { ast::Lifetime { id: ast::DUMMY_NODE_ID, span: span, ident: ident } } diff --git a/src/libsyntax/ext/deriving/ty.rs b/src/libsyntax/ext/deriving/ty.rs index ff0fd388ebe6d..1d3dd9185caae 100644 --- a/src/libsyntax/ext/deriving/ty.rs +++ b/src/libsyntax/ext/deriving/ty.rs @@ -111,14 +111,14 @@ pub fn nil_ty() -> Ty<'static> { fn mk_lifetime(cx: &ExtCtxt, span: Span, lt: &Option<&str>) -> Option { match *lt { - Some(ref s) => Some(cx.lifetime(span, cx.ident_of(*s))), + Some(ref s) => Some(cx.lifetime(span, cx.ident_of(*s).name)), None => None } } fn mk_lifetimes(cx: &ExtCtxt, span: Span, lt: &Option<&str>) -> OptVec { match *lt { - Some(ref s) => opt_vec::with(cx.lifetime(span, cx.ident_of(*s))), + Some(ref s) => opt_vec::with(cx.lifetime(span, cx.ident_of(*s).name)), None => opt_vec::Empty } } @@ -221,7 +221,7 @@ impl<'a> LifetimeBounds<'a> { self_generics: &Generics) -> Generics { let lifetimes = self.lifetimes.map(|lt| { - cx.lifetime(span, cx.ident_of(*lt)) + cx.lifetime(span, cx.ident_of(*lt).name) }); let ty_params = self.bounds.map(|t| { match t { @@ -248,7 +248,7 @@ pub fn get_explicit_self(cx: &ExtCtxt, span: Span, self_ptr: &Option) match *ptr { Send => ast::SelfUniq, Borrowed(ref lt, mutbl) => { - let lt = lt.map(|s| cx.lifetime(span, cx.ident_of(s))); + let lt = lt.map(|s| cx.lifetime(span, cx.ident_of(s).name)); ast::SelfRegion(lt, mutbl) } }); diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index d7a2647c34d07..16a12661e9dbb 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -497,7 +497,7 @@ impl<'a> Context<'a> { ]) } }; - let life = self.ecx.lifetime(sp, self.ecx.ident_of("static")); + let life = self.ecx.lifetime(sp, self.ecx.ident_of("static").name); let ty = self.ecx.ty_path(self.ecx.path_all( sp, true, @@ -629,7 +629,7 @@ impl<'a> Context<'a> { self.ecx.ident_of("Piece"), ], opt_vec::with( - self.ecx.lifetime(self.fmtsp, self.ecx.ident_of("static"))), + self.ecx.lifetime(self.fmtsp, self.ecx.ident_of("static").name)), ~[] ), None); let ty = ast::TyFixedLengthVec( diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 6cde22fad107c..30e77c8c1cb7b 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1596,7 +1596,7 @@ impl Parser { return ast::Lifetime { id: ast::DUMMY_NODE_ID, span: span, - ident: i + ident: i.name }; } _ => { diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 21e1998208c96..fb061bbc0a696 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1951,7 +1951,7 @@ pub fn print_bounds(s: &mut State, bounds: &OptVec, pub fn print_lifetime(s: &mut State, lifetime: &ast::Lifetime) -> io::IoResult<()> { try!(word(&mut s.s, "'")); - print_ident(s, lifetime.ident) + print_name(s, lifetime.ident) } pub fn print_generics(s: &mut State,