summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_query_system/src/values.rs
blob: 67fbf14e6129985d1e7cf346ffdde80f6f5d67ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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");
    }
}