about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2016-03-19 07:13:54 -0400
committerNiko Matsakis <niko@alum.mit.edu>2016-03-23 16:42:52 -0400
commitcaac0b969fd888014c3ff80238d8a00c6eae4feb (patch)
tree71b29d4f53d24c4a84e2c909fcb51e0a69488955 /src
parent9d00deee9619db6722b27630bd037ab32fc3b9ab (diff)
downloadrust-caac0b969fd888014c3ff80238d8a00c6eae4feb.tar.gz
rust-caac0b969fd888014c3ff80238d8a00c6eae4feb.zip
reformat mir text pretty printer
Diffstat (limited to 'src')
-rw-r--r--src/librustc_mir/pretty.rs37
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.