languages: Remove a eager conversion from LanguageName to String (#35667)
This PR changes the signature of `language_names` from ```rust pub fn language_names(&self) -> Vec<String> // Into pub fn language_names(&self) -> Vec<LanguageName> ``` The function previously eagerly converted `LanguageName`'s to `String`'s, which requires the reallocation of all of the elements. The functions get called in many places in the code base, but only one of which actually requires the conversion to a `String`. In one case it would do a `SharedString` -> `String` -> `SharedString` conversion, which is now totally bypassed. Release Notes: - N/A
This commit is contained in:
@@ -121,13 +121,13 @@ impl LanguageSelectorDelegate {
|
||||
.into_iter()
|
||||
.filter_map(|name| {
|
||||
language_registry
|
||||
.available_language_for_name(&name)?
|
||||
.available_language_for_name(name.as_ref())?
|
||||
.hidden()
|
||||
.not()
|
||||
.then_some(name)
|
||||
})
|
||||
.enumerate()
|
||||
.map(|(candidate_id, name)| StringMatchCandidate::new(candidate_id, &name))
|
||||
.map(|(candidate_id, name)| StringMatchCandidate::new(candidate_id, name.as_ref()))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
Self {
|
||||
|
||||
Reference in New Issue
Block a user