]> git.lizzy.rs Git - rust.git/commitdiff
change MIR dump format to include yield type
authorNiko Matsakis <niko@alum.mit.edu>
Fri, 19 Jan 2018 18:56:48 +0000 (13:56 -0500)
committerNiko Matsakis <niko@alum.mit.edu>
Sat, 20 Jan 2018 02:31:35 +0000 (21:31 -0500)
src/librustc_mir/util/pretty.rs

index 37f59773cd6f03b2295c4395b5b985b32349624f..6ed797f70513d98ea8b53ce268d0b6f5188b8da6 100644 (file)
@@ -522,7 +522,7 @@ pub fn write_mir_intro<'a, 'gcx, 'tcx>(
     w: &mut Write,
 ) -> io::Result<()> {
     write_mir_sig(tcx, src, mir, w)?;
-    writeln!(w, " {{")?;
+    writeln!(w, "{{")?;
 
     // construct a scope tree and write it out
     let mut scope_tree: FxHashMap<VisibilityScope, Vec<VisibilityScope>> = FxHashMap();
@@ -585,13 +585,20 @@ fn write_mir_sig(tcx: TyCtxt, src: MirSource, mir: &Mir, w: &mut Write) -> io::R
                 write!(w, "{:?}: {}", Place::Local(arg), mir.local_decls[arg].ty)?;
             }
 
-            write!(w, ") -> {}", mir.return_ty())
+            write!(w, ") -> {}", mir.return_ty())?;
         }
         (hir::BodyOwnerKind::Const, _) | (hir::BodyOwnerKind::Static(_), _) | (_, Some(_)) => {
             assert_eq!(mir.arg_count, 0);
-            write!(w, ": {} =", mir.return_ty())
+            write!(w, ": {} =", mir.return_ty())?;
         }
     }
+
+    if let Some(yield_ty) = mir.yield_ty {
+        writeln!(w)?;
+        writeln!(w, "yields {}", yield_ty)?;
+    }
+
+    Ok(())
 }
 
 fn write_temp_decls(mir: &Mir, w: &mut Write) -> io::Result<()> {