perf(semantic): pre-size class elements hash map (#22618)

This commit is contained in:
camc314 committed 2026-05-21 08:16:51 +00:00
1 parent 04d3065c03
commit 0345a310f9
1 file changed
+3 -2
@@ -1,5 +1,5 @@
use memchr::memchr_iter;
use rustc_hash::FxHashMap;
use rustc_hash::{FxBuildHasher, FxHashMap};
use oxc_allocator::GetAddress;
use oxc_ast::{AstKind, ModuleDeclarationKind, ast::*};
@@ -81,8 +81,9 @@ pub fn check_import_value_redeclarations(ctx: &SemanticBuilder<'_>) {
pub fn check_duplicate_class_elements(ctx: &SemanticBuilder<'_>) {
let classes = &ctx.class_table_builder.classes;
classes.iter_enumerated().for_each(|(class_id, _)| {
let mut defined_elements = FxHashMap::default();
let elements = &classes.elements[class_id];
let mut defined_elements =
FxHashMap::with_capacity_and_hasher(elements.len(), FxBuildHasher);
for (element_id, element) in elements.iter_enumerated() {
if let Some(prev_element_id) = defined_elements.insert(&element.name, element_id) {
let prev_element = &elements[prev_element_id];