Skip to content

Commit 1bb61c6

Browse files
committed
perf(linter): replace phf_set with array in unicorn/prefer-native-coercion-functions (#10384)
Related to #10076
1 parent 4ca13c6 commit 1bb61c6

File tree

1 file changed

+18
-26
lines changed

1 file changed

+18
-26
lines changed

crates/oxc_linter/src/rules/unicorn/prefer_native_coercion_functions.rs

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,11 @@ impl Rule for PreferNativeCoercionFunctions {
102102
}
103103
}
104104

105-
fn check_function(
106-
arg: &FormalParameters,
107-
function_body: &FunctionBody,
105+
fn check_function<'a>(
106+
arg: &'a FormalParameters,
107+
function_body: &'a FunctionBody,
108108
is_arrow: bool,
109-
) -> Option<&'static str> {
109+
) -> Option<&'a str> {
110110
let first_parameter_name = get_first_parameter_name(arg)?;
111111

112112
if function_body.statements.len() != 1 {
@@ -160,10 +160,10 @@ fn get_returned_ident<'a>(stmt: &'a Statement, is_arrow: bool) -> Option<&'a str
160160
None
161161
}
162162

163-
fn is_matching_native_coercion_function_call(
164-
expr: &Expression,
165-
first_arg_name: &str,
166-
) -> Option<&'static str> {
163+
fn is_matching_native_coercion_function_call<'a>(
164+
expr: &'a Expression,
165+
first_arg_name: &'a str,
166+
) -> Option<&'a str> {
167167
let Expression::CallExpression(call_expr) = expr else {
168168
return None;
169169
};
@@ -176,7 +176,11 @@ fn is_matching_native_coercion_function_call(
176176
return None;
177177
};
178178

179-
let fn_name = NATIVE_COERCION_FUNCTION_NAMES.get_key(callee_ident.name.as_str())?;
179+
let fn_name = callee_ident.name.as_str();
180+
181+
if NATIVE_COERCION_FUNCTION_NAMES.binary_search(&fn_name).is_err() {
182+
return None;
183+
}
180184

181185
let Argument::Identifier(arg_ident) = &call_expr.arguments[0] else {
182186
return None;
@@ -224,7 +228,7 @@ fn check_array_callback_methods(
224228
let Some(method_name) = callee_member_expr.static_property_name() else {
225229
return false;
226230
};
227-
if !ARRAY_METHODS_WITH_BOOLEAN_CALLBACK.contains(method_name) {
231+
if ARRAY_METHODS_WITH_BOOLEAN_CALLBACK.binary_search(&method_name).is_err() {
228232
return false;
229233
}
230234

@@ -243,23 +247,11 @@ fn check_array_callback_methods(
243247
first_param_name == returned_ident
244248
}
245249

246-
const NATIVE_COERCION_FUNCTION_NAMES: phf::Set<&'static str> = phf::phf_set! {
247-
"String",
248-
"Number",
249-
"BigInt",
250-
"Boolean",
251-
"Symbol"
252-
};
250+
const NATIVE_COERCION_FUNCTION_NAMES: [&str; 5] =
251+
["BigInt", "Boolean", "Number", "String", "Symbol"];
253252

254-
const ARRAY_METHODS_WITH_BOOLEAN_CALLBACK: phf::Set<&'static str> = phf::phf_set! {
255-
"every",
256-
"filter",
257-
"find",
258-
"findLast",
259-
"findIndex",
260-
"findLastIndex",
261-
"some"
262-
};
253+
const ARRAY_METHODS_WITH_BOOLEAN_CALLBACK: [&str; 7] =
254+
["every", "filter", "find", "findIndex", "findLast", "findLastIndex", "some"];
263255

264256
#[test]
265257
fn test() {

0 commit comments

Comments
 (0)