//! and thus uses bitvectors. Your job is simply to specify the so-called
//! GEN and KILL bits for each expression.
-pub use self::EntryOrExit::*;
-
use middle::cfg;
use middle::cfg::CFGIndex;
use middle::ty;
use syntax::ast;
use syntax::ast_util::IdRange;
use syntax::print::pp;
+use syntax::print::pprust::PrintState;
use util::nodemap::NodeMap;
use rustc_front::hir;
-use rustc_front::visit;
+use rustc_front::intravisit;
use rustc_front::print::pprust;
ps: &mut pprust::State,
node: pprust::AnnNode) -> io::Result<()> {
let id = match node {
- pprust::NodeIdent(_) | pprust::NodeName(_) => 0,
+ pprust::NodeName(_) => 0,
pprust::NodeExpr(expr) => expr.id,
pprust::NodeBlock(blk) => blk.id,
pprust::NodeItem(_) | pprust::NodeSubItem(_) => 0,
index: &'a mut NodeMap<Vec<CFGIndex>>,
}
let mut formals = Formals { entry: entry, index: index };
- visit::walk_fn_decl(&mut formals, decl);
- impl<'a, 'v> visit::Visitor<'v> for Formals<'a> {
+ intravisit::walk_fn_decl(&mut formals, decl);
+ impl<'a, 'v> intravisit::Visitor<'v> for Formals<'a> {
fn visit_pat(&mut self, p: &hir::Pat) {
self.index.entry(p.id).or_insert(vec![]).push(self.entry);
- visit::walk_pat(self, p)
+ intravisit::walk_pat(self, p)
}
}
}
}
let indices = get_cfg_indices(id, &self.nodeid_to_index);
for &cfgidx in indices {
- if !self.each_bit_for_node(Entry, cfgidx, |i| f(i)) {
+ if !self.each_bit_for_node(EntryOrExit::Entry, cfgidx, |i| f(i)) {
return false;
}
}
let on_entry = &self.on_entry[start.. end];
let temp_bits;
let slice = match e {
- Entry => on_entry,
- Exit => {
+ EntryOrExit::Entry => on_entry,
+ EntryOrExit::Exit => {
let mut t = on_entry.to_vec();
self.apply_gen_kill(cfgidx, &mut t);
temp_bits = t;
fn pretty_print_to<'b>(&self, wr: Box<io::Write + 'b>,
blk: &hir::Block) -> io::Result<()> {
- let mut ps = pprust::rust_printer_annotated(wr, self);
+ let mut ps = pprust::rust_printer_annotated(wr, self, None);
try!(ps.cbox(pprust::indent_unit));
try!(ps.ibox(0));
try!(ps.print_block(blk));