ViewPathList(ref path, ref path_list_idents) => {
hir::ViewPathList(lower_path(lctx, path),
path_list_idents.iter()
- .map(|path_list_ident| {
- Spanned {
- node: match path_list_ident.node {
- PathListIdent { id, name, rename } =>
- hir::PathListIdent {
- id: id,
- name: name.name,
- rename: rename.map(|x| x.name),
- },
- PathListMod { id, rename } =>
- hir::PathListMod {
- id: id,
- rename: rename.map(|x| x.name),
- },
- },
- span: path_list_ident.span,
- }
- })
+ .map(lower_path_list_item)
.collect())
}
},
})
}
+fn lower_path_list_item(path_list_ident: &PathListItem) -> hir::PathListItem {
+ Spanned {
+ node: match path_list_ident.node {
+ PathListItemKind::Ident { id, name, rename } => hir::PathListIdent {
+ id: id,
+ name: name.name,
+ rename: rename.map(|x| x.name),
+ },
+ PathListItemKind::Mod { id, rename } => hir::PathListMod {
+ id: id,
+ rename: rename.map(|x| x.name),
+ },
+ },
+ span: path_list_ident.span,
+ }
+}
+
pub fn lower_arm(lctx: &LoweringContext, arm: &Arm) -> hir::Arm {
hir::Arm {
attrs: lower_attrs(lctx, &arm.attrs),
ast::ViewPathList(ref path, ref list) => {
for plid in list {
match plid.node {
- ast::PathListIdent { id, .. } => {
+ ast::PathListItemKind::Ident { id, .. } => {
match self.lookup_type_ref(id) {
Some(def_id) => match self.lookup_def_kind(id, plid.span) {
Some(kind) => {
None => (),
}
}
- ast::PathListMod { .. } => (),
+ ast::PathListItemKind::Mod { .. } => (),
}
}
// The Rust abstract syntax tree.
pub use self::Pat_::*;
-pub use self::PathListItem_::*;
pub use self::StructFieldKind::*;
pub use self::TyParamBound::*;
pub use self::UnsafeSource::*;
pub type Variant = Spanned<Variant_>;
#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)]
-pub enum PathListItem_ {
- PathListIdent {
+pub enum PathListItemKind {
+ Ident {
name: Ident,
/// renamed in list, eg `use foo::{bar as baz};`
rename: Option<Ident>,
id: NodeId
},
- PathListMod {
+ Mod {
/// renamed in list, eg `use foo::{self as baz};`
rename: Option<Ident>,
id: NodeId
}
}
-impl PathListItem_ {
+impl PathListItemKind {
pub fn id(&self) -> NodeId {
match *self {
- PathListIdent { id, .. } | PathListMod { id, .. } => id
+ PathListItemKind::Ident { id, .. } | PathListItemKind::Mod { id, .. } => id
}
}
pub fn name(&self) -> Option<Ident> {
match *self {
- PathListIdent { name, .. } => Some(name),
- PathListMod { .. } => None,
+ PathListItemKind::Ident { name, .. } => Some(name),
+ PathListItemKind::Mod { .. } => None,
}
}
pub fn rename(&self) -> Option<Ident> {
match *self {
- PathListIdent { rename, .. } | PathListMod { rename, .. } => rename
+ PathListItemKind::Ident { rename, .. } | PathListItemKind::Mod { rename, .. } => rename
}
}
}
-pub type PathListItem = Spanned<PathListItem_>;
+pub type PathListItem = Spanned<PathListItemKind>;
pub type ViewPath = Spanned<ViewPath_>;
fn item_use_list(&self, sp: Span, vis: ast::Visibility,
path: Vec<ast::Ident>, imports: &[ast::Ident]) -> P<ast::Item> {
let imports = imports.iter().map(|id| {
- respan(sp, ast::PathListIdent { name: *id, rename: None, id: ast::DUMMY_NODE_ID })
+ let item = ast::PathListItemKind::Ident {
+ name: *id,
+ rename: None,
+ id: ast::DUMMY_NODE_ID,
+ };
+ respan(sp, item)
}).collect();
self.item_use(sp, vis,
path_list_idents.move_map(|path_list_ident| {
Spanned {
node: match path_list_ident.node {
- PathListIdent { id, name, rename } =>
- PathListIdent {
+ PathListItemKind::Ident { id, name, rename } =>
+ PathListItemKind::Ident {
id: fld.new_id(id),
rename: rename,
name: name
},
- PathListMod { id, rename } =>
- PathListMod {
+ PathListItemKind::Mod { id, rename } =>
+ PathListItemKind::Mod {
id: fld.new_id(id),
rename: rename
}
let lo = self.span.lo;
let node = if self.eat_keyword(keywords::SelfValue) {
let rename = try!(self.parse_rename());
- ast::PathListMod { id: ast::DUMMY_NODE_ID, rename: rename }
+ ast::PathListItemKind::Mod { id: ast::DUMMY_NODE_ID, rename: rename }
} else {
let ident = try!(self.parse_ident());
let rename = try!(self.parse_rename());
- ast::PathListIdent { name: ident, rename: rename, id: ast::DUMMY_NODE_ID }
+ ast::PathListItemKind::Ident { name: ident, rename: rename, id: ast::DUMMY_NODE_ID }
};
let hi = self.last_span.hi;
Ok(spanned(lo, hi, node))
}
try!(self.commasep(Inconsistent, &idents[..], |s, w| {
match w.node {
- ast::PathListIdent { name, rename, .. } => {
+ ast::PathListItemKind::Ident { name, rename, .. } => {
try!(s.print_ident(name));
if let Some(ident) = rename {
try!(space(&mut s.s));
}
Ok(())
},
- ast::PathListMod { rename, .. } => {
+ ast::PathListItemKind::Mod { rename, .. } => {
try!(word(&mut s.s, "self"));
if let Some(ident) = rename {
try!(space(&mut s.s));