1
Fork 0

Move some more code from rustc_middle to rustc_query_system

This commit is contained in:
Joshua Nelson 2022-09-11 23:31:50 -05:00
parent f3f91bb514
commit ccc8d000f2
2 changed files with 13 additions and 14 deletions

View file

@ -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:
/// ///

View file

@ -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> {