about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorTaras Tsugrii <taras.tsugriy@gmail.com>2023-07-31 16:58:04 -0700
committerTaras Tsugrii <taras.tsugriy@gmail.com>2023-07-31 16:58:04 -0700
commit9eae73a5de31e94db9f85f75f6b08934946f5bcc (patch)
treec93d8e41bfadea4a28b27a2e507c0c2ec0c48615 /compiler
parentfb53384c94b87adebceb6048865c9fe305e71b92 (diff)
downloadrust-9eae73a5de31e94db9f85f75f6b08934946f5bcc.tar.gz
rust-9eae73a5de31e94db9f85f75f6b08934946f5bcc.zip
[rustc_data_structures] Simplify SortedMap::insert.
It looks like current usage of `swap` is aimed at achieving what
`std::mem::replace` does but more concisely and idiomatically.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_data_structures/src/sorted_map.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/rustc_data_structures/src/sorted_map.rs b/compiler/rustc_data_structures/src/sorted_map.rs
index 9409057d484..60b343afbed 100644
--- a/compiler/rustc_data_structures/src/sorted_map.rs
+++ b/compiler/rustc_data_structures/src/sorted_map.rs
@@ -49,12 +49,11 @@ impl<K: Ord, V> SortedMap<K, V> {
     }
 
     #[inline]
-    pub fn insert(&mut self, key: K, mut value: V) -> Option<V> {
+    pub fn insert(&mut self, key: K, value: V) -> Option<V> {
         match self.lookup_index_for(&key) {
             Ok(index) => {
                 let slot = unsafe { self.data.get_unchecked_mut(index) };
-                mem::swap(&mut slot.1, &mut value);
-                Some(value)
+                Some(mem::replace(&mut slot.1, value))
             }
             Err(index) => {
                 self.data.insert(index, (key, value));