Skip to content

Commit

Permalink
Use Names in path fragments and MacroDef
Browse files Browse the repository at this point in the history
  • Loading branch information
petrochenkov committed Sep 22, 2015
1 parent 64fb709 commit a636a83
Show file tree
Hide file tree
Showing 10 changed files with 40 additions and 39 deletions.
2 changes: 1 addition & 1 deletion src/librustc/metadata/encoder.rs
Expand Up @@ -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,
Expand Down
14 changes: 7 additions & 7 deletions src/librustc_front/hir.rs
Expand Up @@ -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<Attribute>,
pub id: NodeId,
pub span: Span,
pub imported_from: Option<Ident>,
pub imported_from: Option<Name>,
pub export: bool,
pub use_locally: bool,
pub allow_internal_unstable: bool,
Expand Down Expand Up @@ -1039,14 +1039,14 @@ pub type Variant = Spanned<Variant_>;
#[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<Ident>,
rename: Option<Name>,
id: NodeId
},
PathListMod {
/// renamed in list, eg `use foo::{self as baz};`
rename: Option<Ident>,
rename: Option<Name>,
id: NodeId
}
}
Expand All @@ -1058,7 +1058,7 @@ impl PathListItem_ {
}
}

pub fn rename(&self) -> Option<Ident> {
pub fn rename(&self) -> Option<Name> {
match *self {
PathListIdent { rename, .. } | PathListMod { rename, .. } => rename
}
Expand All @@ -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),
Expand Down
15 changes: 9 additions & 6 deletions src/librustc_front/lowering.rs
Expand Up @@ -22,7 +22,7 @@ pub fn lower_view_path(view_path: &ViewPath) -> P<hir::ViewPath> {
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))
Expand All @@ -35,11 +35,14 @@ pub fn lower_view_path(view_path: &ViewPath) -> P<hir::ViewPath> {
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
}
Expand Down Expand Up @@ -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,
Expand Down
9 changes: 4 additions & 5 deletions src/librustc_front/print/pprust.rs
Expand Up @@ -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(())
Expand All @@ -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")
Expand Down
7 changes: 3 additions & 4 deletions src/librustc_resolve/build_reduced_graph.rs
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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)
}
};
Expand Down
12 changes: 6 additions & 6 deletions src/librustc_resolve/lib.rs
Expand Up @@ -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);
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/librustdoc/clean/inline.rs
Expand Up @@ -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<ast::Ident>)
pub fn try_inline(cx: &DocContext, id: ast::NodeId, into: Option<ast::Name>)
-> Option<Vec<clean::Item>> {
let tcx = match cx.tcx_opt() {
Some(tcx) => tcx,
Expand Down
6 changes: 3 additions & 3 deletions src/librustdoc/clean/mod.rs
Expand Up @@ -2386,14 +2386,14 @@ impl Clean<Vec<Item>> 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)))
}
};
Expand Down
4 changes: 2 additions & 2 deletions src/librustdoc/doctree.rs
Expand Up @@ -210,12 +210,12 @@ pub struct DefaultImpl {
}

pub struct Macro {
pub name: Ident,
pub name: Name,
pub id: ast::NodeId,
pub attrs: Vec<ast::Attribute>,
pub whence: Span,
pub stab: Option<attr::Stability>,
pub imported_from: Option<Ident>,
pub imported_from: Option<Name>,
}

pub struct ExternCrate {
Expand Down
8 changes: 4 additions & 4 deletions src/librustdoc/visit_ast.rs
Expand Up @@ -199,7 +199,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> {

}

fn resolve_id(&mut self, id: ast::NodeId, renamed: Option<ast::Ident>,
fn resolve_id(&mut self, id: ast::NodeId, renamed: Option<ast::Name>,
glob: bool, om: &mut Module, please_inline: bool) -> bool {
let tcx = match self.cx.tcx_opt() {
Some(tcx) => tcx,
Expand Down Expand Up @@ -241,9 +241,9 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> {
}

pub fn visit_item(&mut self, item: &hir::Item,
renamed: Option<ast::Ident>, om: &mut Module) {
renamed: Option<ast::Name>, 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 {
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit a636a83

Please sign in to comment.