Skip to content

Commit

Permalink
Use fold instead of flat_map
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Jul 29, 2024
1 parent 6d9ee6e commit 4790f32
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
1 change: 0 additions & 1 deletion Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3867,7 +3867,6 @@ version = "0.0.0"
dependencies = [
"annotate-snippets 0.10.2",
"derive_setters",
"either",
"rustc_ast",
"rustc_ast_pretty",
"rustc_data_structures",
Expand Down
1 change: 0 additions & 1 deletion compiler/rustc_errors/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ edition = "2021"
# tidy-alphabetical-start
annotate-snippets = "0.10"
derive_setters = "0.1.6"
either = "1.5.0"
rustc_ast = { path = "../rustc_ast" }
rustc_ast_pretty = { path = "../rustc_ast_pretty" }
rustc_data_structures = { path = "../rustc_data_structures" }
Expand Down
20 changes: 12 additions & 8 deletions compiler/rustc_errors/src/emitter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ use std::iter;
use std::path::Path;

use derive_setters::Setters;
use either::Either;
use rustc_data_structures::fx::{FxHashMap, FxIndexMap, FxIndexSet};
use rustc_data_structures::sync::{DynSend, IntoDynSyncSend, Lrc};
use rustc_error_messages::{FluentArgs, SpanLabel};
Expand Down Expand Up @@ -2609,16 +2608,21 @@ const OUTPUT_REPLACEMENTS: &[(char, &str)] = &[
('\u{2069}', "�"),
];

fn normalize_whitespace(str: &str) -> String {
fn normalize_whitespace(s: &str) -> String {
// Scan the input string for a character in the ordered table above. If it's present, replace
// it with it's alternative string (it can be more than 1 char!). Otherwise, retain the input
// char. At the end, allocate all chars into a string in one operation.
str.chars()
.flat_map(|c| match OUTPUT_REPLACEMENTS.binary_search_by_key(&c, |(k, _)| *k) {
Ok(i) => Either::Left(OUTPUT_REPLACEMENTS[i].1.chars()),
_ => Either::Right([c].into_iter()),
})
.collect()
s.chars().fold(String::with_capacity(s.len()), |mut s, c| {
match OUTPUT_REPLACEMENTS.binary_search_by_key(&c, |(k, _)| *k) {
Ok(i) => {
for c in OUTPUT_REPLACEMENTS[i].1.chars() {
s.push(c);
}
}
_ => s.push(c),
}
s
})
}

fn draw_col_separator(buffer: &mut StyledBuffer, line: usize, col: usize) {
Expand Down

0 comments on commit 4790f32

Please sign in to comment.