diff options
Diffstat (limited to 'compiler/rustc_save_analysis/src')
| -rw-r--r-- | compiler/rustc_save_analysis/src/errors.rs | 10 | ||||
| -rw-r--r-- | compiler/rustc_save_analysis/src/lib.rs | 6 |
2 files changed, 15 insertions, 1 deletions
diff --git a/compiler/rustc_save_analysis/src/errors.rs b/compiler/rustc_save_analysis/src/errors.rs new file mode 100644 index 00000000000..f0ce41d02a6 --- /dev/null +++ b/compiler/rustc_save_analysis/src/errors.rs @@ -0,0 +1,10 @@ +use rustc_macros::SessionDiagnostic; + +use std::path::Path; + +#[derive(SessionDiagnostic)] +#[diag(save_analysis::could_not_open)] +pub(crate) struct CouldNotOpen<'a> { + pub file_name: &'a Path, + pub err: std::io::Error, +} diff --git a/compiler/rustc_save_analysis/src/lib.rs b/compiler/rustc_save_analysis/src/lib.rs index a1a2040bbca..619e083d89a 100644 --- a/compiler/rustc_save_analysis/src/lib.rs +++ b/compiler/rustc_save_analysis/src/lib.rs @@ -3,11 +3,15 @@ #![feature(let_else)] #![recursion_limit = "256"] #![allow(rustc::potential_query_instability)] +#![feature(never_type)] +#![deny(rustc::untranslatable_diagnostic)] +#![deny(rustc::diagnostic_outside_of_impl)] mod dump_visitor; mod dumper; #[macro_use] mod span_utils; +mod errors; mod sig; use rustc_ast as ast; @@ -928,7 +932,7 @@ impl<'a> DumpHandler<'a> { info!("Writing output to {}", file_name.display()); let output_file = BufWriter::new(File::create(&file_name).unwrap_or_else(|e| { - sess.fatal(&format!("Could not open {}: {}", file_name.display(), e)) + sess.emit_fatal(errors::CouldNotOpen { file_name: file_name.as_path(), err: e }) })); (output_file, file_name) |
