Move some more code from rustc_middle to rustc_query_system
This commit is contained in:
parent
f3f91bb514
commit
ccc8d000f2
@ -86,7 +86,7 @@ pub enum DepKind {
|
||||
$( $( #[$attr] )* $variant),*
|
||||
}
|
||||
|
||||
fn dep_kind_from_label_string(label: &str) -> Result<DepKind, ()> {
|
||||
pub(super) fn dep_kind_from_label_string(label: &str) -> Result<DepKind, ()> {
|
||||
match label {
|
||||
$(stringify!($variant) => Ok(DepKind::$variant),)*
|
||||
_ => Err(()),
|
||||
@ -141,11 +141,6 @@ pub(crate) fn make_compile_mono_item<'tcx>(
|
||||
static_assert_size!(DepNode, 24);
|
||||
|
||||
pub trait DepNodeExt: Sized {
|
||||
/// Construct a DepNode from the given DepKind and DefPathHash. This
|
||||
/// method will assert that the given DepKind actually requires a
|
||||
/// single DefId/DefPathHash parameter.
|
||||
fn from_def_path_hash(tcx: TyCtxt<'_>, def_path_hash: DefPathHash, kind: DepKind) -> Self;
|
||||
|
||||
/// Extracts the DefId corresponding to this DepNode. This will work
|
||||
/// if two conditions are met:
|
||||
///
|
||||
@ -170,14 +165,6 @@ fn from_label_string(
|
||||
}
|
||||
|
||||
impl DepNodeExt for DepNode {
|
||||
/// Construct a DepNode from the given DepKind and DefPathHash. This
|
||||
/// method will assert that the given DepKind actually requires a
|
||||
/// single DefId/DefPathHash parameter.
|
||||
fn from_def_path_hash(tcx: TyCtxt<'_>, def_path_hash: DefPathHash, kind: DepKind) -> DepNode {
|
||||
debug_assert!(tcx.fingerprint_style(kind) == FingerprintStyle::DefPathHash);
|
||||
DepNode { kind, hash: def_path_hash.0.into() }
|
||||
}
|
||||
|
||||
/// Extracts the DefId corresponding to this DepNode. This will work
|
||||
/// if two conditions are met:
|
||||
///
|
||||
|
@ -47,6 +47,7 @@
|
||||
|
||||
use rustc_data_structures::fingerprint::{Fingerprint, PackedFingerprint};
|
||||
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
||||
use rustc_hir::definitions::DefPathHash;
|
||||
use std::fmt;
|
||||
use std::hash::Hash;
|
||||
|
||||
@ -88,6 +89,17 @@ pub fn construct<Ctxt, Key>(tcx: Ctxt, kind: K, arg: &Key) -> DepNode<K>
|
||||
|
||||
dep_node
|
||||
}
|
||||
|
||||
/// Construct a DepNode from the given DepKind and DefPathHash. This
|
||||
/// method will assert that the given DepKind actually requires a
|
||||
/// single DefId/DefPathHash parameter.
|
||||
pub fn from_def_path_hash<Ctxt>(tcx: Ctxt, def_path_hash: DefPathHash, kind: K) -> Self
|
||||
where
|
||||
Ctxt: super::DepContext<DepKind = K>,
|
||||
{
|
||||
debug_assert!(tcx.fingerprint_style(kind) == FingerprintStyle::DefPathHash);
|
||||
DepNode { kind, hash: def_path_hash.0.into() }
|
||||
}
|
||||
}
|
||||
|
||||
impl<K: DepKind> fmt::Debug for DepNode<K> {
|
||||
|
Loading…
Reference in New Issue
Block a user