Rollup merge of #32668 - frewsxcv:hashmap-address-fixme, r=alexcrichton

Address FIXMEs related to short lifetimes in `HashMap`.

None
This commit is contained in:
Steve Klabnik 2016-04-06 12:12:08 -07:00
commit 9ce61702b3

View File

@ -428,10 +428,7 @@ fn robin_hood<'a, K: 'a, V: 'a>(bucket: FullBucketMut<'a, K, V>,
mut val: V)
-> &'a mut V {
let starting_index = bucket.index();
let size = {
let table = bucket.table(); // FIXME "lifetime too short".
table.size()
};
let size = bucket.table().size();
// Save the *starting point*.
let mut bucket = bucket.stash();
// There can be at most `size - dib` buckets to displace, because
@ -744,10 +741,9 @@ impl<K, V, S> HashMap<K, V, S>
let h = bucket.hash();
let (b, k, v) = bucket.take();
self.insert_hashed_ordered(h, k, v);
{
let t = b.table(); // FIXME "lifetime too short".
if t.size() == 0 { break }
};
if b.table().size() == 0 {
break;
}
b.into_bucket()
}
Empty(b) => b.into_bucket()