Skip to content

Commit 0e1f91e

Browse files
committed
perf(linter/js-plugins): use hashmap Entry API + remove temp Vec
1 parent 617620c commit 0e1f91e

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

crates/oxc_linter/src/config/rules.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::{borrow::Cow, fmt};
22

3+
use itertools::Itertools;
34
use rustc_hash::FxHashMap;
45
use schemars::{JsonSchema, r#gen::SchemaGenerator, schema::Schema};
56
use serde::{
@@ -66,9 +67,7 @@ impl OxlintRules {
6667
all_rules: &[RuleEnum],
6768
external_plugin_store: &ExternalPluginStore,
6869
) -> Result<(), ExternalRuleLookupError> {
69-
use itertools::Itertools;
7070
let mut rules_to_replace = vec![];
71-
let mut external_rules_to_replace = vec![];
7271

7372
let lookup = self.rules.iter().into_group_map_by(|r| r.rule_name.as_str());
7473

@@ -100,7 +99,10 @@ impl OxlintRules {
10099
} else {
101100
let external_rule_id =
102101
external_plugin_store.lookup_rule_id(plugin_name, rule_name)?;
103-
external_rules_to_replace.push((external_rule_id, severity));
102+
external_rules_for_override
103+
.entry(external_rule_id)
104+
.and_modify(|sev| *sev = severity)
105+
.or_insert(severity);
104106
}
105107
}
106108
}
@@ -109,10 +111,6 @@ impl OxlintRules {
109111
let _ = rules_for_override.remove(&rule);
110112
rules_for_override.insert(rule, severity);
111113
}
112-
for (external_rule_id, severity) in external_rules_to_replace {
113-
let _ = external_rules_for_override.remove(&external_rule_id);
114-
external_rules_for_override.insert(external_rule_id, severity);
115-
}
116114

117115
Ok(())
118116
}

0 commit comments

Comments
 (0)