pub trait DepNodeKey<Tcx: DepContext>: Debug + Sized {
// Required methods
fn fingerprint_style() -> FingerprintStyle;
fn to_fingerprint(&self, _: Tcx) -> Fingerprint;
fn to_debug_str(&self, tcx: Tcx) -> String;
fn recover(tcx: Tcx, dep_node: &DepNode) -> Option<Self>;
}Expand description
Trait for query keys as seen by dependency-node tracking.
Required Methods§
fn fingerprint_style() -> FingerprintStyle
Sourcefn to_fingerprint(&self, _: Tcx) -> Fingerprint
fn to_fingerprint(&self, _: Tcx) -> Fingerprint
This method turns a query key into an opaque Fingerprint to be used
in DepNode.
fn to_debug_str(&self, tcx: Tcx) -> String
Sourcefn recover(tcx: Tcx, dep_node: &DepNode) -> Option<Self>
fn recover(tcx: Tcx, dep_node: &DepNode) -> Option<Self>
This method tries to recover the query key from the given DepNode,
something which is needed when forcing DepNodes during red-green
evaluation. The query system will only call this method if
fingerprint_style() is not FingerprintStyle::Opaque.
It is always valid to return None here, in which case incremental
compilation will treat the query as having changed instead of forcing it.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.