diff options
| author | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-08-17 21:17:16 +0300 |
|---|---|---|
| committer | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-08-17 21:53:46 +0300 |
| commit | 96e6b2fef82c13aa542713e7923d7d0a76bd698b (patch) | |
| tree | 75506cc39b804179681ba9b76cc5bda3f71002aa | |
| parent | 9b75a2bcd10918a8cde91962a1998615123a401e (diff) | |
| download | rust-96e6b2fef82c13aa542713e7923d7d0a76bd698b.tar.gz rust-96e6b2fef82c13aa542713e7923d7d0a76bd698b.zip | |
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.
| -rw-r--r-- | src/librustc/middle/traits/fulfill.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/librustc/middle/traits/fulfill.rs b/src/librustc/middle/traits/fulfill.rs index 1fca66f1379..99e12b7428d 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() } } |
