Skip to content

Commit

Permalink
Rollup merge of #82174 - est31:master, r=oli-obk
Browse files Browse the repository at this point in the history
Replace File::create and write_all with fs::write

Also don't convert to u8 buffers and back
when we are only creating strings.
  • Loading branch information
GuillaumeGomez committed Feb 17, 2021
2 parents 16481a2 + e527def commit d382771
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions compiler/rustc_driver/src/pretty.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ use rustc_span::symbol::Ident;
use rustc_span::FileName;

use std::cell::Cell;
use std::fs::File;
use std::io::Write;
use std::path::Path;

pub use self::PpMode::*;
Expand Down Expand Up @@ -375,13 +373,14 @@ fn get_source(input: &Input, sess: &Session) -> (String, FileName) {
(src, src_name)
}

fn write_output(out: Vec<u8>, ofile: Option<&Path>) {
fn write_or_print(out: &str, ofile: Option<&Path>) {
match ofile {
None => print!("{}", String::from_utf8(out).unwrap()),
Some(p) => match File::create(p) {
Ok(mut w) => w.write_all(&out).unwrap(),
Err(e) => panic!("print-print failed to open {} due to {}", p.display(), e),
},
None => print!("{}", out),
Some(p) => {
if let Err(e) = std::fs::write(p, out) {
panic!("print-print failed to write {} due to {}", p.display(), e);
}
}
}
}

Expand Down Expand Up @@ -417,7 +416,7 @@ pub fn print_after_parsing(
unreachable!();
};

write_output(out.into_bytes(), ofile);
write_or_print(&out, ofile);
}

pub fn print_after_hir_lowering<'tcx>(
Expand Down Expand Up @@ -477,7 +476,7 @@ pub fn print_after_hir_lowering<'tcx>(
_ => unreachable!(),
}

write_output(out.into_bytes(), ofile);
write_or_print(&out, ofile);
}

// In an ideal world, this would be a public function called by the driver after
Expand All @@ -503,7 +502,8 @@ fn print_with_analysis(
}
.unwrap();

write_output(out, ofile);
let out = std::str::from_utf8(&out).unwrap();
write_or_print(out, ofile);

Ok(())
}

0 comments on commit d382771

Please sign in to comment.