We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 37d7e0a commit b02cab8Copy full SHA for b02cab8
1 file changed
compiler/src/modules/vm/types.rs
@@ -552,13 +552,19 @@ impl DictMap {
552
pub fn new() -> Self { Self { entries: Vec::new(), index: HashMap::default() } }
553
554
pub fn remove(&mut self, key: &Val) -> Option<Val> {
555
- let idx = *self.index.get(key)?;
556
- let val = self.entries[idx].1;
+ let &idx = self.index.get(key)?;
+ let val = self.entries[idx].1;
557
+
558
+ self.index.remove(key);
559
560
self.entries.remove(idx);
- self.index.clear();
- for (i, (k, _)) in self.entries.iter().enumerate() {
- self.index.insert(*k, i);
561
562
+ for (i, (k, _)) in self.entries[idx..].iter().enumerate() {
563
+ if let Some(entry) = self.index.get_mut(k) {
564
+ *entry = idx + i;
565
+ }
566
}
567
568
Some(val)
569
570
0 commit comments