diff options
| author | Taras Tsugrii <taras.tsugriy@gmail.com> | 2023-08-01 16:57:43 -0700 |
|---|---|---|
| committer | Taras Tsugrii <taras.tsugriy@gmail.com> | 2023-08-01 16:57:43 -0700 |
| commit | f74eee2fa6620ecb88070ed2eb2dfd7ba12e0b63 (patch) | |
| tree | 1285934e6e0b5563cda3d7fdb27ca7f1ea8406a6 | |
| parent | abd3637e42bdccc4afd5d5ae9a96d9a0e7246e67 (diff) | |
| download | rust-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.rs | 4 |
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 } |
