diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 92a2c32c59445..b19c0f2ecc5d2 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -1787,7 +1787,7 @@ fn encode_macro_defs(rbml_w: &mut Encoder, for def in &krate.exported_macros { rbml_w.start_tag(tag_macro_def); - encode_name(rbml_w, def.ident.name); + encode_name(rbml_w, def.name); encode_attributes(rbml_w, &def.attrs); rbml_w.wr_tagged_str(tag_macro_def_body, diff --git a/src/librustc_front/hir.rs b/src/librustc_front/hir.rs index 5585833a39ffd..8d0ba4fc483d2 100644 --- a/src/librustc_front/hir.rs +++ b/src/librustc_front/hir.rs @@ -333,11 +333,11 @@ pub struct Crate { /// Not parsed directly, but created on macro import or `macro_rules!` expansion. #[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)] pub struct MacroDef { - pub ident: Ident, + pub name: Name, pub attrs: Vec, pub id: NodeId, pub span: Span, - pub imported_from: Option, + pub imported_from: Option, pub export: bool, pub use_locally: bool, pub allow_internal_unstable: bool, @@ -1039,14 +1039,14 @@ pub type Variant = Spanned; #[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)] pub enum PathListItem_ { PathListIdent { - name: Ident, + name: Name, /// renamed in list, eg `use foo::{bar as baz};` - rename: Option, + rename: Option, id: NodeId }, PathListMod { /// renamed in list, eg `use foo::{self as baz};` - rename: Option, + rename: Option, id: NodeId } } @@ -1058,7 +1058,7 @@ impl PathListItem_ { } } - pub fn rename(&self) -> Option { + pub fn rename(&self) -> Option { match *self { PathListIdent { rename, .. } | PathListMod { rename, .. } => rename } @@ -1077,7 +1077,7 @@ pub enum ViewPath_ { /// or just /// /// `foo::bar::baz` (with `as baz` implicitly on the right) - ViewPathSimple(Ident, Path), + ViewPathSimple(Name, Path), /// `foo::bar::*` ViewPathGlob(Path), diff --git a/src/librustc_front/lowering.rs b/src/librustc_front/lowering.rs index 2ce80e95302e8..8735f7cf8c67d 100644 --- a/src/librustc_front/lowering.rs +++ b/src/librustc_front/lowering.rs @@ -22,7 +22,7 @@ pub fn lower_view_path(view_path: &ViewPath) -> P { P(Spanned { node: match view_path.node { ViewPathSimple(ident, ref path) => { - hir::ViewPathSimple(ident, lower_path(path)) + hir::ViewPathSimple(ident.name, lower_path(path)) } ViewPathGlob(ref path) => { hir::ViewPathGlob(lower_path(path)) @@ -35,11 +35,14 @@ pub fn lower_view_path(view_path: &ViewPath) -> P { PathListIdent { id, name, rename } => hir::PathListIdent { id: id, - name: name, - rename: rename.clone(), + name: name.name, + rename: rename.map(|x| x.name), }, PathListMod { id, rename } => - hir::PathListMod { id: id, rename: rename.clone() } + hir::PathListMod { + id: id, + rename: rename.map(|x| x.name) + } }, span: path_list_ident.span } @@ -526,11 +529,11 @@ pub fn lower_crate(c: &Crate) -> hir::Crate { pub fn lower_macro_def(m: &MacroDef) -> hir::MacroDef { hir::MacroDef { - ident: m.ident, + name: m.ident.name, attrs: m.attrs.clone(), id: m.id, span: m.span, - imported_from: m.imported_from, + imported_from: m.imported_from.map(|x| x.name), export: m.export, use_locally: m.use_locally, allow_internal_unstable: m.allow_internal_unstable, diff --git a/src/librustc_front/print/pprust.rs b/src/librustc_front/print/pprust.rs index ba4c61c83a02e..0a56bcceb43c0 100644 --- a/src/librustc_front/print/pprust.rs +++ b/src/librustc_front/print/pprust.rs @@ -2174,15 +2174,14 @@ impl<'a> State<'a> { pub fn print_view_path(&mut self, vp: &hir::ViewPath) -> io::Result<()> { match vp.node { - hir::ViewPathSimple(ident, ref path) => { + hir::ViewPathSimple(name, ref path) => { try!(self.print_path(path, false, 0)); // FIXME(#6993) can't compare identifiers directly here - if path.segments.last().unwrap().identifier.name != - ident.name { + if path.segments.last().unwrap().identifier.name != name { try!(space(&mut self.s)); try!(self.word_space("as")); - try!(self.print_ident(ident)); + try!(self.print_name(name)); } Ok(()) @@ -2203,7 +2202,7 @@ impl<'a> State<'a> { try!(self.commasep(Inconsistent, &idents[..], |s, w| { match w.node { hir::PathListIdent { name, .. } => { - s.print_ident(name) + s.print_name(name) }, hir::PathListMod { .. } => { word(&mut s.s, "self") diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index 304eae970c6d1..068b89b6ded00 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -312,8 +312,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> { ResolutionError::SelfImportsOnlyAllowedWithin); } - let subclass = SingleImport(binding.name, - source_name); + let subclass = SingleImport(binding, source_name); self.build_import_directive(&**parent, module_path, subclass, @@ -343,7 +342,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> { for source_item in source_items { let (module_path, name, rename) = match source_item.node { PathListIdent { name, rename, .. } => - (module_path.clone(), name.name, rename.unwrap_or(name).name), + (module_path.clone(), name, rename.unwrap_or(name)), PathListMod { rename, .. } => { let name = match module_path.last() { Some(name) => *name, @@ -358,7 +357,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> { } }; let module_path = module_path.split_last().unwrap().1; - let rename = rename.map(|n| n.name).unwrap_or(name); + let rename = rename.unwrap_or(name); (module_path.to_vec(), name, rename) } }; diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 04e90be5363a4..2cb1f6802f082 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -2210,23 +2210,23 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { ItemUse(ref view_path) => { // check for imports shadowing primitive types - let check_rename = |this: &Self, id, ident: Ident| { + let check_rename = |this: &Self, id, name| { match this.def_map.borrow().get(&id).map(|d| d.full_def()) { Some(DefTy(..)) | Some(DefStruct(..)) | Some(DefTrait(..)) | None => { - this.check_if_primitive_type_name(ident.name, item.span); + this.check_if_primitive_type_name(name, item.span); } _ => {} } }; match view_path.node { - hir::ViewPathSimple(ident, _) => { - check_rename(self, item.id, ident); + hir::ViewPathSimple(name, _) => { + check_rename(self, item.id, name); } hir::ViewPathList(ref prefix, ref items) => { for item in items { - if let Some(ident) = item.node.rename() { - check_rename(self, item.node.id(), ident); + if let Some(name) = item.node.rename() { + check_rename(self, item.node.id(), name); } } diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index 930bc831028f0..21895301a6ce8 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -43,7 +43,7 @@ use super::{Clean, ToSource}; /// /// The returned value is `None` if the `id` could not be inlined, and `Some` /// of a vector of items if it was successfully expanded. -pub fn try_inline(cx: &DocContext, id: ast::NodeId, into: Option) +pub fn try_inline(cx: &DocContext, id: ast::NodeId, into: Option) -> Option> { let tcx = match cx.tcx_opt() { Some(tcx) => tcx, diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 51f1b4b7157ad..f9b5b570490e2 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -2386,14 +2386,14 @@ impl Clean> for doctree::Import { (ret, ImportList(resolve_use_source(cx, p.clean(cx), self.id), remaining)) } - hir::ViewPathSimple(i, ref p) => { + hir::ViewPathSimple(name, ref p) => { if !denied { - match inline::try_inline(cx, self.id, Some(i)) { + match inline::try_inline(cx, self.id, Some(name)) { Some(items) => return items, None => {} } } - (vec![], SimpleImport(i.clean(cx), + (vec![], SimpleImport(name.clean(cx), resolve_use_source(cx, p.clean(cx), self.id))) } }; diff --git a/src/librustdoc/doctree.rs b/src/librustdoc/doctree.rs index c090bcfe01006..be283c19cfac4 100644 --- a/src/librustdoc/doctree.rs +++ b/src/librustdoc/doctree.rs @@ -210,12 +210,12 @@ pub struct DefaultImpl { } pub struct Macro { - pub name: Ident, + pub name: Name, pub id: ast::NodeId, pub attrs: Vec, pub whence: Span, pub stab: Option, - pub imported_from: Option, + pub imported_from: Option, } pub struct ExternCrate { diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index cb22e3b41c71f..d818115567770 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -199,7 +199,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { } - fn resolve_id(&mut self, id: ast::NodeId, renamed: Option, + fn resolve_id(&mut self, id: ast::NodeId, renamed: Option, glob: bool, om: &mut Module, please_inline: bool) -> bool { let tcx = match self.cx.tcx_opt() { Some(tcx) => tcx, @@ -241,9 +241,9 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { } pub fn visit_item(&mut self, item: &hir::Item, - renamed: Option, om: &mut Module) { + renamed: Option, om: &mut Module) { debug!("Visiting item {:?}", item); - let name = renamed.map_or(item.name, |x| x.name); + let name = renamed.unwrap_or(item.name); match item.node { hir::ItemExternCrate(ref p) => { let path = match *p { @@ -398,7 +398,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { Macro { id: def.id, attrs: def.attrs.clone(), - name: def.ident, + name: def.name, whence: def.span, stab: self.stability(def.id), imported_from: def.imported_from,