diff options
| author | yukang <moorekang@gmail.com> | 2022-08-30 09:31:52 +0800 |
|---|---|---|
| committer | yukang <moorekang@gmail.com> | 2022-08-30 09:31:52 +0800 |
| commit | 77eb1aef52c3ec99220347dc56f87911fb3c0198 (patch) | |
| tree | 872329834f7a7c242708ddbcf68491e52288da80 /compiler/rustc_driver/src | |
| parent | 9678751a880bc87a9beae7585ace926306a291e6 (diff) | |
| download | rust-77eb1aef52c3ec99220347dc56f87911fb3c0198.tar.gz rust-77eb1aef52c3ec99220347dc56f87911fb3c0198.zip | |
add UI test for unpretty
Diffstat (limited to 'compiler/rustc_driver/src')
| -rw-r--r-- | compiler/rustc_driver/src/pretty.rs | 10 | ||||
| -rw-r--r-- | compiler/rustc_driver/src/session_diagnostics.rs | 7 |
2 files changed, 12 insertions, 5 deletions
diff --git a/compiler/rustc_driver/src/pretty.rs b/compiler/rustc_driver/src/pretty.rs index 21a3a077a10..faeacd3e410 100644 --- a/compiler/rustc_driver/src/pretty.rs +++ b/compiler/rustc_driver/src/pretty.rs @@ -1,5 +1,6 @@ //! The various pretty-printing routines. +use crate::session_diagnostics::UnprettyDumpFail; use rustc_ast as ast; use rustc_ast_pretty::pprust; use rustc_errors::ErrorGuaranteed; @@ -362,11 +363,10 @@ fn write_or_print(out: &str, ofile: Option<&Path>, sess: &Session) { None => print!("{}", out), Some(p) => { if let Err(e) = std::fs::write(p, out) { - let mut err = sess.struct_fatal(&format!( - "pretty-print failed to write {} due to error `{e}`", - p.display() - )); - err.emit(); + sess.emit_fatal(UnprettyDumpFail { + path: p.display().to_string(), + err: e.to_string(), + }); } } } diff --git a/compiler/rustc_driver/src/session_diagnostics.rs b/compiler/rustc_driver/src/session_diagnostics.rs index fe64d0fca9b..e9696792d05 100644 --- a/compiler/rustc_driver/src/session_diagnostics.rs +++ b/compiler/rustc_driver/src/session_diagnostics.rs @@ -31,3 +31,10 @@ pub(crate) struct RLinkRustcVersionMismatch<'a> { #[derive(SessionDiagnostic)] #[diag(driver::rlink_no_a_file)] pub(crate) struct RlinkNotAFile; + +#[derive(SessionDiagnostic)] +#[diag(driver::unpretty_dump_fail)] +pub(crate) struct UnprettyDumpFail { + pub path: String, + pub err: String, +} |
