about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2018-04-01 13:28:47 +0100
committervarkor <github@varkor.com>2018-04-09 16:45:14 +0100
commite7aa1397ea901e50cc3427d8db44c0b387253bba (patch)
tree9ff77314eed7ee262c7a356a30dbe78498b290f5
parent2cc52f08b30642cf995fc39ceb5f3e4741a3dee3 (diff)
downloadrust-e7aa1397ea901e50cc3427d8db44c0b387253bba.tar.gz
rust-e7aa1397ea901e50cc3427d8db44c0b387253bba.zip
Use sort_by_cached_key for partitioning
-rw-r--r--src/librustc_mir/monomorphize/partitioning.rs8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/librustc_mir/monomorphize/partitioning.rs b/src/librustc_mir/monomorphize/partitioning.rs
index f914176864a..f29f86af4ab 100644
--- a/src/librustc_mir/monomorphize/partitioning.rs
+++ b/src/librustc_mir/monomorphize/partitioning.rs
@@ -189,11 +189,9 @@ pub trait CodegenUnitExt<'tcx> {
             }, item.symbol_name(tcx))
         }
 
-        let items: Vec<_> = self.items().iter().map(|(&i, &l)| (i, l)).collect();
-        let mut items : Vec<_> = items.iter()
-            .map(|il| (il, item_sort_key(tcx, il.0))).collect();
-        items.sort_by(|&(_, ref key1), &(_, ref key2)| key1.cmp(key2));
-        items.into_iter().map(|(&item_linkage, _)| item_linkage).collect()
+        let mut items: Vec<_> = self.items().iter().map(|(&i, &l)| (i, l)).collect();
+        items.sort_by_cached_key(|&(i, _)| item_sort_key(tcx, i));
+        items
     }
 }