From 2d7bbda966744f5eff12135bb523ac9c1d561cf0 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Fri, 27 Mar 2020 08:33:37 +0100 Subject: [PATCH] Implement HashStable directly. --- src/librustc/dep_graph/mod.rs | 2 -- src/librustc_query_system/dep_graph/dep_node.rs | 9 +++++++-- src/librustc_query_system/dep_graph/mod.rs | 2 +- src/librustc_query_system/lib.rs | 2 -- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/librustc/dep_graph/mod.rs b/src/librustc/dep_graph/mod.rs index 7b05a575b93a8..f56df19bfb061 100644 --- a/src/librustc/dep_graph/mod.rs +++ b/src/librustc/dep_graph/mod.rs @@ -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(); def_id.index == hir_id.owner.local_def_index } - -impl rustc_query_system::HashStableContext for StableHashingContext<'_> {} diff --git a/src/librustc_query_system/dep_graph/dep_node.rs b/src/librustc_query_system/dep_graph/dep_node.rs index c6fff2f01643a..b1d332da11592 100644 --- a/src/librustc_query_system/dep_graph/dep_node.rs +++ b/src/librustc_query_system/dep_graph/dep_node.rs @@ -46,7 +46,6 @@ use super::{DepContext, DepKind}; use rustc_data_structures::fingerprint::Fingerprint; use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; -use rustc_macros::HashStable_Generic; use std::fmt; use std::hash::Hash; @@ -127,7 +126,6 @@ where /// the need to be mapped or unmapped. (This ensures we can serialize /// them even in the absence of a tcx.) #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, RustcEncodable, RustcDecodable)] -#[derive(HashStable_Generic)] pub struct WorkProductId { hash: Fingerprint, } @@ -144,3 +142,10 @@ impl WorkProductId { WorkProductId { hash: fingerprint } } } + +impl HashStable for WorkProductId { + #[inline] + fn hash_stable(&self, hcx: &mut HCX, hasher: &mut StableHasher) { + self.hash.hash_stable(hcx, hasher) + } +} diff --git a/src/librustc_query_system/dep_graph/mod.rs b/src/librustc_query_system/dep_graph/mod.rs index 232efa8795d24..fbc91575ede41 100644 --- a/src/librustc_query_system/dep_graph/mod.rs +++ b/src/librustc_query_system/dep_graph/mod.rs @@ -22,7 +22,7 @@ use std::hash::Hash; pub trait DepContext: Copy { type DepKind: self::DepKind; - type StableHashingContext: crate::HashStableContext; + type StableHashingContext; /// Create a hashing context for hashing new results. fn create_stable_hashing_context(&self) -> Self::StableHashingContext; diff --git a/src/librustc_query_system/lib.rs b/src/librustc_query_system/lib.rs index 6623e74b5cb18..0e6a07e06d0f2 100644 --- a/src/librustc_query_system/lib.rs +++ b/src/librustc_query_system/lib.rs @@ -15,5 +15,3 @@ extern crate rustc_data_structures; pub mod dep_graph; pub mod query; - -pub trait HashStableContext {}