diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-02-17 20:38:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-17 20:38:01 +0100 |
| commit | d382771d3ad80446467739963e873867206c023f (patch) | |
| tree | f1a8124c1588c0d1b06b28c548f341b2ce219e1d | |
| parent | 16481a285733f004ab9c5573c1e7fd5b602b3ddd (diff) | |
| parent | e527def9c7a090fabf9ca41d09b629e5268d41f8 (diff) | |
| download | rust-d382771d3ad80446467739963e873867206c023f.tar.gz rust-d382771d3ad80446467739963e873867206c023f.zip | |
Rollup merge of #82174 - est31:master, r=oli-obk
Replace File::create and write_all with fs::write Also don't convert to u8 buffers and back when we are only creating strings.
| -rw-r--r-- | compiler/rustc_driver/src/pretty.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/compiler/rustc_driver/src/pretty.rs b/compiler/rustc_driver/src/pretty.rs index b2e201c5ff2..17d2b3386f5 100644 --- a/compiler/rustc_driver/src/pretty.rs +++ b/compiler/rustc_driver/src/pretty.rs @@ -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::*; @@ -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); + } + } } } @@ -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>( @@ -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 @@ -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(()) } |
