This commit is contained in:
csmoe 2018-07-11 18:59:17 +08:00 committed by Oliver Schneider
parent 114314c920
commit 14893ba96b
11 changed files with 36 additions and 37 deletions

View File

@ -126,12 +126,12 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
fn decl(&mut self, decl: &hir::Decl, pred: CFGIndex) -> CFGIndex {
match decl.node {
hir::DeclLocal(ref local) => {
hir::DeclKind::Local(ref local) => {
let init_exit = self.opt_expr(&local.init, pred);
self.pat(&local.pat, init_exit)
}
hir::DeclItem(_) => pred,
hir::DeclKind::Item(_) => pred,
}
}

View File

@ -949,8 +949,8 @@ pub fn walk_stmt<'v, V: Visitor<'v>>(visitor: &mut V, statement: &'v Stmt) {
pub fn walk_decl<'v, V: Visitor<'v>>(visitor: &mut V, declaration: &'v Decl) {
match declaration.node {
DeclLocal(ref local) => visitor.visit_local(local),
DeclItem(item) => visitor.visit_nested_item(item),
DeclKind::Local(ref local) => visitor.visit_local(local),
DeclKind::Item(item) => visitor.visit_nested_item(item),
}
}

View File

@ -4248,7 +4248,7 @@ impl<'a> LoweringContext<'a> {
StmtKind::Local(ref l) => Spanned {
node: hir::StmtKind::Decl(
P(Spanned {
node: hir::DeclLocal(self.lower_local(l)),
node: hir::DeclKind::Local(self.lower_local(l)),
span: s.span,
}),
self.lower_node_id(s.id).node_id,
@ -4263,7 +4263,7 @@ impl<'a> LoweringContext<'a> {
.map(|item_id| Spanned {
node: hir::StmtKind::Decl(
P(Spanned {
node: hir::DeclItem(item_id),
node: hir::DeclKind::Item(item_id),
span: s.span,
}),
id.take()
@ -4493,7 +4493,7 @@ impl<'a> LoweringContext<'a> {
attrs: ThinVec::new(),
source,
});
let decl = respan(sp, hir::DeclLocal(local));
let decl = respan(sp, hir::DeclKind::Local(local));
respan(sp, hir::StmtKind::Decl(P(decl), self.next_id().node_id))
}

View File

@ -12,8 +12,7 @@
pub use self::BlockCheckMode::*;
pub use self::CaptureClause::*;
pub use self::Decl_::*;
pub use self::Expr_::*;
pub use self::ExprKind::*;
pub use self::FunctionRetTy::*;
pub use self::ForeignItem_::*;
pub use self::Item_::*;
@ -1158,27 +1157,27 @@ pub struct Local {
pub source: LocalSource,
}
pub type Decl = Spanned<Decl_>;
pub type Decl = Spanned<DeclKind>;
#[derive(Clone, RustcEncodable, RustcDecodable, Debug)]
pub enum Decl_ {
pub enum DeclKind {
/// A local (let) binding:
DeclLocal(P<Local>),
Local(P<Local>),
/// An item binding:
DeclItem(ItemId),
Item(ItemId),
}
impl Decl_ {
impl DeclKind {
pub fn attrs(&self) -> &[Attribute] {
match *self {
DeclLocal(ref l) => &l.attrs,
DeclItem(_) => &[]
DeclKind::Local(ref l) => &l.attrs,
DeclKind::Item(_) => &[]
}
}
pub fn is_local(&self) -> bool {
match *self {
Decl_::DeclLocal(_) => true,
DeclKind::Local(_) => true,
_ => false,
}
}

View File

@ -1575,7 +1575,7 @@ impl<'a> State<'a> {
pub fn print_decl(&mut self, decl: &hir::Decl) -> io::Result<()> {
self.maybe_print_comment(decl.span.lo())?;
match decl.node {
hir::DeclLocal(ref loc) => {
hir::DeclKind::Local(ref loc) => {
self.space_if_not_bol()?;
self.ibox(indent_unit)?;
self.word_nbsp("let")?;
@ -1590,7 +1590,7 @@ impl<'a> State<'a> {
}
self.end()
}
hir::DeclItem(item) => {
hir::DeclKind::Item(item) => {
self.ann.nested(self, Nested::Item(item))
}
}
@ -2400,8 +2400,8 @@ fn stmt_ends_with_semi(stmt: &hir::StmtKind) -> bool {
match *stmt {
hir::StmtKind::Decl(ref d, _) => {
match d.node {
hir::DeclLocal(_) => true,
hir::DeclItem(_) => false,
hir::DeclKind::Local(_) => true,
hir::DeclKind::Item(_) => false,
}
}
hir::StmtKind::Expr(ref e, _) => {

View File

@ -479,10 +479,10 @@ impl_stable_hash_for!(struct hir::Local {
source
});
impl_stable_hash_for_spanned!(hir::Decl_);
impl_stable_hash_for!(enum hir::Decl_ {
DeclLocal(local),
DeclItem(item_id)
impl_stable_hash_for_spanned!(hir::DeclKind);
impl_stable_hash_for!(enum hir::DeclKind {
Local(local),
Item(item_id)
});
impl_stable_hash_for!(struct hir::Arm {

View File

@ -588,11 +588,11 @@ impl<'a, 'gcx, 'tcx> ExprUseVisitor<'a, 'gcx, 'tcx> {
match stmt.node {
hir::StmtKind::Decl(ref decl, _) => {
match decl.node {
hir::DeclLocal(ref local) => {
hir::DeclKind::Local(ref local) => {
self.walk_local(&local);
}
hir::DeclItem(_) => {
hir::DeclKind::Item(_) => {
// we don't visit nested items in this visitor,
// only the fn body we were given.
}

View File

@ -873,10 +873,10 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
fn propagate_through_decl(&mut self, decl: &hir::Decl, succ: LiveNode)
-> LiveNode {
match decl.node {
hir::DeclLocal(ref local) => {
hir::DeclKind::Local(ref local) => {
self.propagate_through_local(&local, succ)
}
hir::DeclItem(_) => succ,
hir::DeclKind::Item(_) => succ,
}
}

View File

@ -67,10 +67,10 @@ fn mirror_stmts<'a, 'gcx, 'tcx>(cx: &mut Cx<'a, 'gcx, 'tcx>,
}
hir::StmtKind::Decl(ref decl, _) => {
match decl.node {
hir::DeclItem(..) => {
hir::DeclKind::Item(..) => {
// ignore for purposes of the MIR
}
hir::DeclLocal(ref local) => {
hir::DeclKind::Local(ref local) => {
let remainder_scope = region::Scope::Remainder(BlockRemainder {
block: block_id,
first_statement_index: region::FirstStatementIndex::new(index),

View File

@ -263,7 +263,7 @@ impl<'a, 'tcx> CheckCrateVisitor<'a, 'tcx> {
match stmt.node {
hir::StmtKind::Decl(ref decl, _node_id) => {
match &decl.node {
hir::DeclLocal(local) => {
hir::DeclKind::Local(local) => {
if self.remove_mut_rvalue_borrow(&local.pat) {
if let Some(init) = &local.init {
self.mut_rvalue_borrows.insert(init.id);
@ -277,7 +277,7 @@ impl<'a, 'tcx> CheckCrateVisitor<'a, 'tcx> {
NotPromotable
}
// Item statements are allowed
hir::DeclItem(_) => Promotable
hir::DeclKind::Item(_) => Promotable
}
}
hir::StmtKind::Expr(ref box_expr, _node_id) |

View File

@ -4379,8 +4379,8 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
match stmt.node {
hir::StmtKind::Decl(ref decl, _) => {
match decl.node {
hir::DeclLocal(_) => {}
hir::DeclItem(_) => {
hir::DeclKind::Local(_) => {}
hir::DeclKind::Item(_) => {
return;
}
}
@ -4399,10 +4399,10 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
match stmt.node {
hir::StmtKind::Decl(ref decl, _) => {
match decl.node {
hir::DeclLocal(ref l) => {
hir::DeclKind::Local(ref l) => {
self.check_decl_local(&l);
}
hir::DeclItem(_) => {/* ignore for now */}
hir::DeclKind::Item(_) => {/* ignore for now */}
}
}
hir::StmtKind::Expr(ref expr, _) => {