diff options
| author | Li Yuanheng <520dhh@gmail.com> | 2022-08-27 11:55:38 +0800 |
|---|---|---|
| committer | Li Yuanheng <520dhh@gmail.com> | 2022-08-31 19:43:23 +0800 |
| commit | 7ce59ebf496590c8b2ba3693c13e981d369add4b (patch) | |
| tree | 77c0a238fc2f183c1d359c4a5fc2597651a6fbb8 | |
| parent | 166aef90fb7936892af5f0f88335e732d207c731 (diff) | |
| download | rust-7ce59ebf496590c8b2ba3693c13e981d369add4b.tar.gz rust-7ce59ebf496590c8b2ba3693c13e981d369add4b.zip | |
SessionDiagnostic for QueryOverflow error
| -rw-r--r-- | compiler/rustc_error_messages/locales/en-US/query_system.ftl | 2 | ||||
| -rw-r--r-- | compiler/rustc_error_messages/src/lib.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_query_system/src/error.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_query_system/src/query/mod.rs | 2 |
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); } } |
