diff --git a/crates/rspack_core/src/dependencies_block.rs b/crates/rspack_core/src/dependencies_block.rs index e14b309c3e0a..41d2b3be6185 100644 --- a/crates/rspack_core/src/dependencies_block.rs +++ b/crates/rspack_core/src/dependencies_block.rs @@ -102,10 +102,10 @@ impl AsyncDependenciesBlock { Self { id: format!( "{parent}|dep={}{}{}", - dependencies.iter().fold(String::default(), |mut s, dep| { - s += dep.resource_identifier().unwrap_or_default(); - s - }), + dependencies + .iter() + .map(|dep| dep.resource_identifier().unwrap_or_default()) + .collect::(), loc_str, modifier_str ) diff --git a/crates/rspack_core/src/utils/compile_boolean_matcher.rs b/crates/rspack_core/src/utils/compile_boolean_matcher.rs index d89239760d51..65b1b6e85771 100644 --- a/crates/rspack_core/src/utils/compile_boolean_matcher.rs +++ b/crates/rspack_core/src/utils/compile_boolean_matcher.rs @@ -104,11 +104,11 @@ pub(crate) fn items_to_regexp(items_arr: Vec) -> String { let mut items = items_arr.iter().cloned().collect::>(); if count_of_single_char_items > 2 { - let mut single_char_items: String = String::new(); + let mut single_char_items = String::with_capacity(count_of_single_char_items); let mut new_items = BTreeSet::new(); for item in items { if item.chars().count() == 1 { - single_char_items += &item; + single_char_items.push_str(&item); continue; } new_items.insert(item); diff --git a/crates/rspack_plugin_javascript/src/utils/eval/mod.rs b/crates/rspack_plugin_javascript/src/utils/eval/mod.rs index da77bac07c8e..d2c8ea05d556 100644 --- a/crates/rspack_plugin_javascript/src/utils/eval/mod.rs +++ b/crates/rspack_plugin_javascript/src/utils/eval/mod.rs @@ -278,15 +278,11 @@ impl<'a> BasicEvaluatedExpression<'a> { } Some(format!("[{}]", arr.join(", "))) } else if self.is_template_string() { - let mut s = String::new(); - for p in self.parts() { - if let Some(p) = p.as_string() { - s += &p; - } else { - return None; - } - } - Some(s) + self + .parts() + .iter() + .map(|p| p.as_string()) + .collect::>() } else { None }