Implement HashStable directly.
This commit is contained in:
parent
222d010255
commit
2d7bbda966
|
@ -184,5 +184,3 @@ fn def_id_corresponds_to_hir_dep_node(tcx: TyCtxt<'_>, def_id: DefId) -> bool {
|
||||||
let hir_id = tcx.hir().as_local_hir_id(def_id).unwrap();
|
let hir_id = tcx.hir().as_local_hir_id(def_id).unwrap();
|
||||||
def_id.index == hir_id.owner.local_def_index
|
def_id.index == hir_id.owner.local_def_index
|
||||||
}
|
}
|
||||||
|
|
||||||
impl rustc_query_system::HashStableContext for StableHashingContext<'_> {}
|
|
||||||
|
|
|
@ -46,7 +46,6 @@ use super::{DepContext, DepKind};
|
||||||
|
|
||||||
use rustc_data_structures::fingerprint::Fingerprint;
|
use rustc_data_structures::fingerprint::Fingerprint;
|
||||||
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
||||||
use rustc_macros::HashStable_Generic;
|
|
||||||
|
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::hash::Hash;
|
use std::hash::Hash;
|
||||||
|
@ -127,7 +126,6 @@ where
|
||||||
/// the need to be mapped or unmapped. (This ensures we can serialize
|
/// the need to be mapped or unmapped. (This ensures we can serialize
|
||||||
/// them even in the absence of a tcx.)
|
/// them even in the absence of a tcx.)
|
||||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, RustcEncodable, RustcDecodable)]
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, RustcEncodable, RustcDecodable)]
|
||||||
#[derive(HashStable_Generic)]
|
|
||||||
pub struct WorkProductId {
|
pub struct WorkProductId {
|
||||||
hash: Fingerprint,
|
hash: Fingerprint,
|
||||||
}
|
}
|
||||||
|
@ -144,3 +142,10 @@ impl WorkProductId {
|
||||||
WorkProductId { hash: fingerprint }
|
WorkProductId { hash: fingerprint }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<HCX> HashStable<HCX> for WorkProductId {
|
||||||
|
#[inline]
|
||||||
|
fn hash_stable(&self, hcx: &mut HCX, hasher: &mut StableHasher) {
|
||||||
|
self.hash.hash_stable(hcx, hasher)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ use std::hash::Hash;
|
||||||
|
|
||||||
pub trait DepContext: Copy {
|
pub trait DepContext: Copy {
|
||||||
type DepKind: self::DepKind;
|
type DepKind: self::DepKind;
|
||||||
type StableHashingContext: crate::HashStableContext;
|
type StableHashingContext;
|
||||||
|
|
||||||
/// Create a hashing context for hashing new results.
|
/// Create a hashing context for hashing new results.
|
||||||
fn create_stable_hashing_context(&self) -> Self::StableHashingContext;
|
fn create_stable_hashing_context(&self) -> Self::StableHashingContext;
|
||||||
|
|
|
@ -15,5 +15,3 @@ extern crate rustc_data_structures;
|
||||||
|
|
||||||
pub mod dep_graph;
|
pub mod dep_graph;
|
||||||
pub mod query;
|
pub mod query;
|
||||||
|
|
||||||
pub trait HashStableContext {}
|
|
||||||
|
|
Loading…
Reference in New Issue