]> git.lizzy.rs Git - rust.git/commitdiff
Use resize_with
authorkjeremy <kjeremy@gmail.com>
Tue, 31 Mar 2020 13:02:12 +0000 (09:02 -0400)
committerkjeremy <kjeremy@gmail.com>
Tue, 31 Mar 2020 13:02:12 +0000 (09:02 -0400)
crates/ra_arena/src/map.rs

index e4ddbad42977d4554c0394faab0bfe6c47b261a9..0f33907c0aee2572d17c571ae2d0a0672be0f752 100644 (file)
@@ -15,8 +15,7 @@ impl<T, V> ArenaMap<Idx<T>, V> {
     pub fn insert(&mut self, id: Idx<T>, t: V) {
         let idx = Self::to_idx(id);
 
-        let fill = (idx + 1).saturating_sub(self.v.len());
-        self.v.extend(std::iter::repeat_with(|| None).take(fill));
+        self.v.resize_with((idx + 1).max(self.v.len()), || None);
         self.v[idx] = Some(t);
     }