diff options
Diffstat (limited to '')
-rw-r--r-- | compiler/rustc_query_system/src/values.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/rustc_query_system/src/values.rs b/compiler/rustc_query_system/src/values.rs new file mode 100644 index 000000000..67fbf14e6 --- /dev/null +++ b/compiler/rustc_query_system/src/values.rs @@ -0,0 +1,15 @@ +use crate::dep_graph::DepContext; +use crate::query::QueryInfo; + +pub trait Value<CTX: DepContext>: Sized { + fn from_cycle_error(tcx: CTX, cycle: &[QueryInfo]) -> Self; +} + +impl<CTX: DepContext, T> Value<CTX> for T { + default fn from_cycle_error(tcx: CTX, _: &[QueryInfo]) -> T { + tcx.sess().abort_if_errors(); + // Ideally we would use `bug!` here. But bug! is only defined in rustc_middle, and it's + // non-trivial to define it earlier. + panic!("Value::from_cycle_error called without errors"); + } +} |