From 9eae73a5de31e94db9f85f75f6b08934946f5bcc Mon Sep 17 00:00:00 2001 From: Taras Tsugrii Date: Mon, 31 Jul 2023 16:58:04 -0700 Subject: [PATCH] [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. --- compiler/rustc_data_structures/src/sorted_map.rs | 5 ++--- 1 file 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 SortedMap { } #[inline] - pub fn insert(&mut self, key: K, mut value: V) -> Option { + pub fn insert(&mut self, key: K, value: V) -> Option { 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));