Move some more code from rustc_middle to rustc_query_system
This commit is contained in:
parent
f3f91bb514
commit
ccc8d000f2
2 changed files with 13 additions and 14 deletions
|
@ -86,7 +86,7 @@ macro_rules! define_dep_nodes {
|
||||||
$( $( #[$attr] )* $variant),*
|
$( $( #[$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 {
|
match label {
|
||||||
$(stringify!($variant) => Ok(DepKind::$variant),)*
|
$(stringify!($variant) => Ok(DepKind::$variant),)*
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
|
@ -141,11 +141,6 @@ static_assert_size!(DepNode, 18);
|
||||||
static_assert_size!(DepNode, 24);
|
static_assert_size!(DepNode, 24);
|
||||||
|
|
||||||
pub trait DepNodeExt: Sized {
|
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
|
/// Extracts the DefId corresponding to this DepNode. This will work
|
||||||
/// if two conditions are met:
|
/// if two conditions are met:
|
||||||
///
|
///
|
||||||
|
@ -170,14 +165,6 @@ pub trait DepNodeExt: Sized {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DepNodeExt for DepNode {
|
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
|
/// Extracts the DefId corresponding to this DepNode. This will work
|
||||||
/// if two conditions are met:
|
/// if two conditions are met:
|
||||||
///
|
///
|
||||||
|
|
|
@ -47,6 +47,7 @@ use crate::ich::StableHashingContext;
|
||||||
|
|
||||||
use rustc_data_structures::fingerprint::{Fingerprint, PackedFingerprint};
|
use rustc_data_structures::fingerprint::{Fingerprint, PackedFingerprint};
|
||||||
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
||||||
|
use rustc_hir::definitions::DefPathHash;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::hash::Hash;
|
use std::hash::Hash;
|
||||||
|
|
||||||
|
@ -88,6 +89,17 @@ impl<K: DepKind> DepNode<K> {
|
||||||
|
|
||||||
dep_node
|
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> {
|
impl<K: DepKind> fmt::Debug for DepNode<K> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue