auto merge of #5696 : thestinger/rust/hashmap, r=sanxiyn

This naming is free now that `oldmap` has finally been removed, so this is a search-and-replace to take advantage of that. It might as well be called `HashMap` instead of being named after the specific implementation, since there's only one.

SipHash distributes keys so well that I don't think there will ever be much need to use anything but a simple hash table with open addressing. If there *is* a better way to do it, it will probably be better in all cases and can just be the default implementation. 

A cuckoo-hashing implementation combining a weaker hash with SipHash could be useful, but that won't be as general purpose - you would need to write a separate fast hash function specialized for the type to really take advantage of it (like taking a page from libstdc++/libc++ and just using the integer value as the "hash"). I think a more specific naming for a truly alternative implementation like that would be fine, with the nice naming reserved for the general purpose container.
This commit is contained in:
bors 2013-04-03 14:04:07 -07:00
commit 5b933aeba2
76 changed files with 1394 additions and 1398 deletions

View file

@ -94,7 +94,7 @@ use opt_vec::OptVec;
use core::either::Either;
use core::either;
use core::hashmap::linear::LinearSet;
use core::hashmap::HashSet;
use core::vec;
#[deriving(Eq)]
@ -243,7 +243,7 @@ pub fn Parser(sess: @mut ParseSess,
keywords: token::keyword_table(),
strict_keywords: token::strict_keyword_table(),
reserved_keywords: token::reserved_keyword_table(),
obsolete_set: @mut LinearSet::new(),
obsolete_set: @mut HashSet::new(),
mod_path_stack: @mut ~[],
}
}
@ -263,12 +263,12 @@ pub struct Parser {
quote_depth: @mut uint, // not (yet) related to the quasiquoter
reader: @reader,
interner: @token::ident_interner,
keywords: LinearSet<~str>,
strict_keywords: LinearSet<~str>,
reserved_keywords: LinearSet<~str>,
keywords: HashSet<~str>,
strict_keywords: HashSet<~str>,
reserved_keywords: HashSet<~str>,
/// The set of seen errors about obsolete syntax. Used to suppress
/// extra detail when the same error is seen twice
obsolete_set: @mut LinearSet<ObsoleteSyntax>,
obsolete_set: @mut HashSet<ObsoleteSyntax>,
/// Used to determine the path to externally loaded source files
mod_path_stack: @mut ~[~str],