about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTaras Tsugrii <taras.tsugriy@gmail.com>2023-08-01 16:57:43 -0700
committerTaras Tsugrii <taras.tsugriy@gmail.com>2023-08-01 16:57:43 -0700
commitf74eee2fa6620ecb88070ed2eb2dfd7ba12e0b63 (patch)
tree1285934e6e0b5563cda3d7fdb27ca7f1ea8406a6
parentabd3637e42bdccc4afd5d5ae9a96d9a0e7246e67 (diff)
downloadrust-f74eee2fa6620ecb88070ed2eb2dfd7ba12e0b63.tar.gz
rust-f74eee2fa6620ecb88070ed2eb2dfd7ba12e0b63.zip
[rustc_span][perf] Remove unnecessary string joins and allocs.
Comparing vectors of string parts yields the same result but avoids
unnecessary `join` and potential allocation for resulting `String`.
This code is cold so it's unlikely to have any measurable impact, but
considering but since it's also simpler, why not? :)
-rw-r--r--compiler/rustc_span/src/edit_distance.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_span/src/edit_distance.rs b/compiler/rustc_span/src/edit_distance.rs
index 259f4238654..0ce099387f4 100644
--- a/compiler/rustc_span/src/edit_distance.rs
+++ b/compiler/rustc_span/src/edit_distance.rs
@@ -247,9 +247,9 @@ fn find_match_by_sorted_words(iter_names: &[Symbol], lookup: &str) -> Option<Sym
     })
 }
 
-fn sort_by_words(name: &str) -> String {
+fn sort_by_words(name: &str) -> Vec<&str> {
     let mut split_words: Vec<&str> = name.split('_').collect();
     // We are sorting primitive &strs and can use unstable sort here.
     split_words.sort_unstable();
-    split_words.join("_")
+    split_words
 }