From 96e6b2fef82c13aa542713e7923d7d0a76bd698b Mon Sep 17 00:00:00 2001 From: Ariel Ben-Yehuda Date: Mon, 17 Aug 2015 21:17:16 +0300 Subject: [PATCH] use an FnvHashSet instead of an HashSet in fulfill this doesn't cause a measurable perf increase, but it makes callgrind output cleaner. Anyway, rustc should be using FNV everywhere. --- src/librustc/middle/traits/fulfill.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/librustc/middle/traits/fulfill.rs b/src/librustc/middle/traits/fulfill.rs index 1fca66f13791..99e12b7428d2 100644 --- a/src/librustc/middle/traits/fulfill.rs +++ b/src/librustc/middle/traits/fulfill.rs @@ -12,11 +12,10 @@ use middle::infer::InferCtxt; use middle::ty::{self, RegionEscape, Ty, HasTypeFlags}; use middle::wf; -use std::collections::HashSet; use std::fmt; use syntax::ast; use util::common::ErrorReported; -use util::nodemap::NodeMap; +use util::nodemap::{FnvHashSet, NodeMap}; use super::CodeAmbiguity; use super::CodeProjectionError; @@ -33,7 +32,7 @@ use super::Unimplemented; use super::util::predicate_for_builtin_bound; pub struct FulfilledPredicates<'tcx> { - set: HashSet<(RFC1214Warning, ty::Predicate<'tcx>)> + set: FnvHashSet<(RFC1214Warning, ty::Predicate<'tcx>)> } /// The fulfillment context is used to drive trait resolution. It @@ -540,7 +539,7 @@ fn register_region_obligation<'tcx>(t_a: Ty<'tcx>, impl<'tcx> FulfilledPredicates<'tcx> { pub fn new() -> FulfilledPredicates<'tcx> { FulfilledPredicates { - set: HashSet::new() + set: FnvHashSet() } }