From 10e289e19131b5339ef1a2e001ae0cfcf330c1b0 Mon Sep 17 00:00:00 2001 From: Michael Woerister Date: Mon, 16 Oct 2017 14:43:36 +0200 Subject: [PATCH] Make debuginfo::UniqueTypeId use 128 bit hash. --- src/librustc_data_structures/stable_hasher.rs | 31 ------------------- src/librustc_trans/debuginfo/metadata.rs | 7 ++--- 2 files changed, 3 insertions(+), 35 deletions(-) diff --git a/src/librustc_data_structures/stable_hasher.rs b/src/librustc_data_structures/stable_hasher.rs index 3e526900110..831e113016f 100644 --- a/src/librustc_data_structures/stable_hasher.rs +++ b/src/librustc_data_structures/stable_hasher.rs @@ -61,37 +61,6 @@ pub fn finish(self) -> W { } } -impl StableHasherResult for [u8; 20] { - fn finish(hasher: StableHasher) -> Self { - let (_0, _1) = hasher.finalize(); - - [ - (_0 >> 0) as u8, - (_0 >> 8) as u8, - (_0 >> 16) as u8, - (_0 >> 24) as u8, - (_0 >> 32) as u8, - (_0 >> 40) as u8, - (_0 >> 48) as u8, - (_0 >> 56) as u8, - - 17, - 33, - 47, - 3, - - (_1 >> 0) as u8, - (_1 >> 8) as u8, - (_1 >> 16) as u8, - (_1 >> 24) as u8, - (_1 >> 32) as u8, - (_1 >> 40) as u8, - (_1 >> 48) as u8, - (_1 >> 56) as u8, - ] - } -} - impl StableHasherResult for u128 { fn finish(hasher: StableHasher) -> Self { let (_0, _1) = hasher.finalize(); diff --git a/src/librustc_trans/debuginfo/metadata.rs b/src/librustc_trans/debuginfo/metadata.rs index 8a89bfee4ac..201d7867764 100644 --- a/src/librustc_trans/debuginfo/metadata.rs +++ b/src/librustc_trans/debuginfo/metadata.rs @@ -30,7 +30,7 @@ use rustc::ty::subst::Substs; use rustc::ty::util::TypeIdHasher; use rustc::hir; -use rustc_data_structures::ToHex; +use rustc::ich::Fingerprint; use {type_of, machine, monomorphize}; use common::{self, CrateContext}; use type_::Type; @@ -146,11 +146,10 @@ fn get_unique_type_id_of_type<'a>(&mut self, cx: &CrateContext<'a, 'tcx>, // The hasher we are using to generate the UniqueTypeId. We want // something that provides more than the 64 bits of the DefaultHasher. - - let mut type_id_hasher = TypeIdHasher::<[u8; 20]>::new(cx.tcx()); + let mut type_id_hasher = TypeIdHasher::::new(cx.tcx()); type_id_hasher.visit_ty(type_); - let unique_type_id = type_id_hasher.finish().to_hex(); + let key = self.unique_id_interner.intern(&unique_type_id); self.type_to_unique_id.insert(type_, UniqueTypeId(key)); -- GitLab