about summary refs log tree commit diff
path: root/compiler/rustc_interface/src/queries.rs
diff options
context:
space:
mode:
authorGiacomo Stevanato <giaco.stevanato@gmail.com>2022-08-20 18:33:02 +0200
committerGiacomo Stevanato <giaco.stevanato@gmail.com>2022-08-22 13:22:00 +0200
commitb411adec2aff3d57928e42017aa267fbed6e05f5 (patch)
tree565e72bdda71b2e87b7087a22705f9334782efe4 /compiler/rustc_interface/src/queries.rs
parente4403ae9ff9ca9912fe80a5401c57c48fb979e5f (diff)
downloadrust-b411adec2aff3d57928e42017aa267fbed6e05f5.tar.gz
rust-b411adec2aff3d57928e42017aa267fbed6e05f5.zip
Move rustc_interface diagnostics to struct SessionDiagnostic derives
Diffstat (limited to 'compiler/rustc_interface/src/queries.rs')
-rw-r--r--compiler/rustc_interface/src/queries.rs18
1 files changed, 9 insertions, 9 deletions
diff --git a/compiler/rustc_interface/src/queries.rs b/compiler/rustc_interface/src/queries.rs
index 73402ae0842..e0e8752036e 100644
--- a/compiler/rustc_interface/src/queries.rs
+++ b/compiler/rustc_interface/src/queries.rs
@@ -1,3 +1,4 @@
+use crate::errors::{FailedWritingFile, RustcErrorFatal, RustcErrorUnexpectedAnnotation};
 use crate::interface::{Compiler, Result};
 use crate::passes::{self, BoxedResolver, QueryContext};
 
@@ -274,18 +275,14 @@ impl<'tcx> Queries<'tcx> {
 
                 // Bare `#[rustc_error]`.
                 None => {
-                    tcx.sess.span_fatal(
-                        tcx.def_span(def_id),
-                        "fatal error triggered by #[rustc_error]",
-                    );
+                    tcx.sess.emit_fatal(RustcErrorFatal { span: tcx.def_span(def_id) });
                 }
 
                 // Some other attribute.
                 Some(_) => {
-                    tcx.sess.span_warn(
-                        tcx.def_span(def_id),
-                        "unexpected annotation used with `#[rustc_error(...)]!",
-                    );
+                    tcx.sess.emit_warning(RustcErrorUnexpectedAnnotation {
+                        span: tcx.def_span(def_id),
+                    });
                 }
             }
         }
@@ -361,7 +358,10 @@ impl Linker {
             let encoded = CodegenResults::serialize_rlink(&codegen_results);
             let rlink_file = self.prepare_outputs.with_extension(config::RLINK_EXT);
             std::fs::write(&rlink_file, encoded).map_err(|err| {
-                sess.fatal(&format!("failed to write file {}: {}", rlink_file.display(), err));
+                sess.emit_fatal(FailedWritingFile {
+                    path: (&rlink_file.display()).into(),
+                    error: (&err).into(),
+                })
             })?;
             return Ok(());
         }