diff options
| author | Wonchul Lee <wonchul.dev@gmail.com> | 2022-08-20 06:40:31 +0900 |
|---|---|---|
| committer | Wonchul Lee <wonchul.dev@gmail.com> | 2022-08-24 06:50:16 +0900 |
| commit | 9b95eef6ea3fc8a371241277698be881d4ec4bb7 (patch) | |
| tree | 7ce2f1abfa1897c912b622a225f6bc38f297c602 /compiler/rustc_save_analysis/src | |
| parent | a1bea1551b8312b6abfbbf7d49bafac2e6ce8ee4 (diff) | |
| download | rust-9b95eef6ea3fc8a371241277698be881d4ec4bb7.tar.gz rust-9b95eef6ea3fc8a371241277698be881d4ec4bb7.zip | |
save_analysis: Migrate diagnostics
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) |
