diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2016-03-19 07:13:54 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2016-03-23 16:42:52 -0400 |
| commit | caac0b969fd888014c3ff80238d8a00c6eae4feb (patch) | |
| tree | 71b29d4f53d24c4a84e2c909fcb51e0a69488955 /src | |
| parent | 9d00deee9619db6722b27630bd037ab32fc3b9ab (diff) | |
| download | rust-caac0b969fd888014c3ff80238d8a00c6eae4feb.tar.gz rust-caac0b969fd888014c3ff80238d8a00c6eae4feb.zip | |
reformat mir text pretty printer
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/pretty.rs | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/src/librustc_mir/pretty.rs b/src/librustc_mir/pretty.rs index b8bb1b4ee11..0f1891bf37b 100644 --- a/src/librustc_mir/pretty.rs +++ b/src/librustc_mir/pretty.rs @@ -16,21 +16,33 @@ use syntax::ast::NodeId; const INDENT: &'static str = " "; /// Write out a human-readable textual representation for the given MIR. -pub fn write_mir_pretty<'a, 't, W, I>(tcx: &ty::TyCtxt<'t>, iter: I, w: &mut W) -> io::Result<()> -where W: Write, I: Iterator<Item=(&'a NodeId, &'a Mir<'a>)> { - for (&nodeid, mir) in iter { - write_mir_intro(tcx, nodeid, mir, w)?; - // Nodes - for block in mir.all_basic_blocks() { - write_basic_block(block, mir, w)?; - } - writeln!(w, "}}")? +pub fn write_mir_pretty<'a, 'tcx, I>(tcx: &ty::TyCtxt<'tcx>, + iter: I, + w: &mut Write) + -> io::Result<()> + where I: Iterator<Item=(&'a NodeId, &'a Mir<'tcx>)>, 'tcx: 'a +{ + for (&node_id, mir) in iter { + write_mir_fn(tcx, node_id, mir, w)?; + } + Ok(()) +} + +pub fn write_mir_fn<'tcx>(tcx: &ty::TyCtxt<'tcx>, + node_id: NodeId, + mir: &Mir<'tcx>, + w: &mut Write) + -> io::Result<()> { + write_mir_intro(tcx, node_id, mir, w)?; + for block in mir.all_basic_blocks() { + write_basic_block(block, mir, w)?; } + writeln!(w, "}}")?; Ok(()) } /// Write out a human-readable textual representation for the given basic block. -fn write_basic_block<W: Write>(block: BasicBlock, mir: &Mir, w: &mut W) -> io::Result<()> { +fn write_basic_block(block: BasicBlock, mir: &Mir, w: &mut Write) -> io::Result<()> { let data = mir.basic_block_data(block); // Basic block label at the top. @@ -49,9 +61,8 @@ fn write_basic_block<W: Write>(block: BasicBlock, mir: &Mir, w: &mut W) -> io::R /// Write out a human-readable textual representation of the MIR's `fn` type and the types of its /// local variables (both user-defined bindings and compiler temporaries). -fn write_mir_intro<W: Write>(tcx: &ty::TyCtxt, nid: NodeId, mir: &Mir, w: &mut W) --> io::Result<()> { - +fn write_mir_intro(tcx: &ty::TyCtxt, nid: NodeId, mir: &Mir, w: &mut Write) + -> io::Result<()> { write!(w, "fn {}(", tcx.map.path_to_string(nid))?; // fn argument types. |
