// option. This file may not be copied, modified, or distributed
// except according to those terms.
-pub use self::AnnNode::*;
-
use rustc_target::spec::abi::{self, Abi};
use ast::{self, BlockCheckMode, PatKind, RangeEnd, RangeSyntax};
use ast::{SelfKind, GenericBound, TraitBoundModifier};
use std::vec;
pub enum AnnNode<'a> {
- NodeIdent(&'a ast::Ident),
- NodeName(&'a ast::Name),
- NodeBlock(&'a ast::Block),
- NodeItem(&'a ast::Item),
- NodeSubItem(ast::NodeId),
- NodeExpr(&'a ast::Expr),
- NodePat(&'a ast::Pat),
+ Ident(&'a ast::Ident),
+ Name(&'a ast::Name),
+ Block(&'a ast::Block),
+ Item(&'a ast::Item),
+ SubItem(ast::NodeId),
+ Expr(&'a ast::Expr),
+ Pat(&'a ast::Pat),
}
pub trait PpAnn {
self.hardbreak_if_not_bol()?;
self.maybe_print_comment(item.span.lo())?;
self.print_outer_attributes(&item.attrs)?;
- self.ann.pre(self, NodeItem(item))?;
+ self.ann.pre(self, AnnNode::Item(item))?;
match item.node {
ast::ItemKind::ExternCrate(orig_name) => {
self.head(&visibility_qualified(&item.vis, "extern crate"))?;
self.end()?;
}
}
- self.ann.post(self, NodeItem(item))
+ self.ann.post(self, AnnNode::Item(item))
}
fn print_trait_ref(&mut self, t: &ast::TraitRef) -> io::Result<()> {
pub fn print_trait_item(&mut self, ti: &ast::TraitItem)
-> io::Result<()> {
- self.ann.pre(self, NodeSubItem(ti.id))?;
+ self.ann.pre(self, AnnNode::SubItem(ti.id))?;
self.hardbreak_if_not_bol()?;
self.maybe_print_comment(ti.span.lo())?;
self.print_outer_attributes(&ti.attrs)?;
}
}
}
- self.ann.post(self, NodeSubItem(ti.id))
+ self.ann.post(self, AnnNode::SubItem(ti.id))
}
pub fn print_impl_item(&mut self, ii: &ast::ImplItem) -> io::Result<()> {
- self.ann.pre(self, NodeSubItem(ii.id))?;
+ self.ann.pre(self, AnnNode::SubItem(ii.id))?;
self.hardbreak_if_not_bol()?;
self.maybe_print_comment(ii.span.lo())?;
self.print_outer_attributes(&ii.attrs)?;
}
}
}
- self.ann.post(self, NodeSubItem(ii.id))
+ self.ann.post(self, AnnNode::SubItem(ii.id))
}
pub fn print_stmt(&mut self, st: &ast::Stmt) -> io::Result<()> {
BlockCheckMode::Default => ()
}
self.maybe_print_comment(blk.span.lo())?;
- self.ann.pre(self, NodeBlock(blk))?;
+ self.ann.pre(self, AnnNode::Block(blk))?;
self.bopen()?;
self.print_inner_attributes(attrs)?;
}
self.bclose_maybe_open(blk.span, indented, close_box)?;
- self.ann.post(self, NodeBlock(blk))
+ self.ann.post(self, AnnNode::Block(blk))
}
fn print_else(&mut self, els: Option<&ast::Expr>) -> io::Result<()> {
}
self.ibox(INDENT_UNIT)?;
- self.ann.pre(self, NodeExpr(expr))?;
+ self.ann.pre(self, AnnNode::Expr(expr))?;
match expr.node {
ast::ExprKind::Box(ref expr) => {
self.word_space("box")?;
self.print_expr_maybe_paren(e, parser::PREC_POSTFIX)?;
self.s.word("?")?
}
- ast::ExprKind::Catch(ref blk) => {
- self.head("do catch")?;
+ ast::ExprKind::TryBlock(ref blk) => {
+ self.head("try")?;
self.s.space()?;
self.print_block_with_attrs(blk, attrs)?
}
}
- self.ann.post(self, NodeExpr(expr))?;
+ self.ann.post(self, AnnNode::Expr(expr))?;
self.end()
}
} else {
self.s.word(&ident.as_str())?;
}
- self.ann.post(self, NodeIdent(&ident))
+ self.ann.post(self, AnnNode::Ident(&ident))
}
pub fn print_usize(&mut self, i: usize) -> io::Result<()> {
pub fn print_name(&mut self, name: ast::Name) -> io::Result<()> {
self.s.word(&name.as_str())?;
- self.ann.post(self, NodeName(&name))
+ self.ann.post(self, AnnNode::Name(&name))
}
pub fn print_for_decl(&mut self, loc: &ast::Local,
pub fn print_pat(&mut self, pat: &ast::Pat) -> io::Result<()> {
self.maybe_print_comment(pat.span.lo())?;
- self.ann.pre(self, NodePat(pat))?;
+ self.ann.pre(self, AnnNode::Pat(pat))?;
/* Pat isn't normalized, but the beauty of it
is that it doesn't matter */
match pat.node {
}
PatKind::Mac(ref m) => self.print_mac(m)?,
}
- self.ann.post(self, NodePat(pat))
+ self.ann.post(self, AnnNode::Pat(pat))
}
fn print_pats(&mut self, pats: &[P<ast::Pat>]) -> io::Result<()> {