about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLi Yuanheng <520dhh@gmail.com>2022-08-27 11:55:38 +0800
committerLi Yuanheng <520dhh@gmail.com>2022-08-31 19:43:23 +0800
commit7ce59ebf496590c8b2ba3693c13e981d369add4b (patch)
tree77c0a238fc2f183c1d359c4a5fc2597651a6fbb8
parent166aef90fb7936892af5f0f88335e732d207c731 (diff)
downloadrust-7ce59ebf496590c8b2ba3693c13e981d369add4b.tar.gz
rust-7ce59ebf496590c8b2ba3693c13e981d369add4b.zip
SessionDiagnostic for QueryOverflow error
-rw-r--r--compiler/rustc_error_messages/locales/en-US/query_system.ftl2
-rw-r--r--compiler/rustc_error_messages/src/lib.rs2
-rw-r--r--compiler/rustc_query_system/src/error.rs4
-rw-r--r--compiler/rustc_query_system/src/query/mod.rs2
4 files changed, 8 insertions, 2 deletions
diff --git a/compiler/rustc_error_messages/locales/en-US/query_system.ftl b/compiler/rustc_error_messages/locales/en-US/query_system.ftl
index 7fdecf4f381..167704e46c0 100644
--- a/compiler/rustc_error_messages/locales/en-US/query_system.ftl
+++ b/compiler/rustc_error_messages/locales/en-US/query_system.ftl
@@ -21,3 +21,5 @@ query_system_cycle_recursive_ty_alias_help2 = see <https://doc.rust-lang.org/ref
 query_system_cycle_recursive_trait_alias = trait aliases cannot be recursive
 
 query_system_cycle_which_requires = ...which requires {$desc}...
+
+query_system_query_overflow = queries overflow the depth limit!
diff --git a/compiler/rustc_error_messages/src/lib.rs b/compiler/rustc_error_messages/src/lib.rs
index 601fa4c72f0..6e200bcfdca 100644
--- a/compiler/rustc_error_messages/src/lib.rs
+++ b/compiler/rustc_error_messages/src/lib.rs
@@ -48,11 +48,11 @@ fluent_messages! {
     passes => "../locales/en-US/passes.ftl",
     plugin_impl => "../locales/en-US/plugin_impl.ftl",
     privacy => "../locales/en-US/privacy.ftl",
+    query_system => "../locales/en-US/query_system.ftl",
     save_analysis => "../locales/en-US/save_analysis.ftl",
     ty_utils => "../locales/en-US/ty_utils.ftl",
     typeck => "../locales/en-US/typeck.ftl",
     mir_dataflow => "../locales/en-US/mir_dataflow.ftl",
-    query_system => "../locales/en-US/query_system.ftl",
 }
 
 pub use fluent_generated::{self as fluent, DEFAULT_LOCALE_RESOURCES};
diff --git a/compiler/rustc_query_system/src/error.rs b/compiler/rustc_query_system/src/error.rs
index 9b808afeef6..5f992ec9e21 100644
--- a/compiler/rustc_query_system/src/error.rs
+++ b/compiler/rustc_query_system/src/error.rs
@@ -67,3 +67,7 @@ pub struct IncrementCompilation {
     pub run_cmd: String,
     pub dep_node: String,
 }
+
+#[derive(SessionDiagnostic)]
+#[diag(query_system::query_overflow)]
+pub struct QueryOverflow;
diff --git a/compiler/rustc_query_system/src/query/mod.rs b/compiler/rustc_query_system/src/query/mod.rs
index a1f2b081d43..c6197b9fedb 100644
--- a/compiler/rustc_query_system/src/query/mod.rs
+++ b/compiler/rustc_query_system/src/query/mod.rs
@@ -125,6 +125,6 @@ pub trait QueryContext: HasDepContext {
     ) -> R;
 
     fn depth_limit_error(&self) {
-        self.dep_context().sess().fatal("queries overflow the depth limit!");
+        self.dep_context().sess().emit_fatal(crate::error::QueryOverflow);
     }
 }