perf(linter): use cow_to_ascii_lowercase/uppercase (#5637)

part of #5586 

In addition, can a similar situation in the
[formatter](https://github.com/oxc-project/oxc/blob/main/crates/oxc_prettier/src/format/mod.rs#L1406-L1409)
be handled in this way?
This commit is contained in:
heygsc 2024-09-09 16:13:53 +08:00 committed by GitHub
parent 0b3c1d72a3
commit e3ae5dbb02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 10 additions and 4 deletions

View file

@ -1,5 +1,6 @@
use std::collections::HashMap;
use cow_utils::CowUtils;
use oxc_ast::{ast::MemberExpression, AstKind};
use oxc_diagnostics::OxcDiagnostic;
use oxc_macros::declare_oxc_lint;
@ -235,7 +236,7 @@ fn is_jest_call(name: &str) -> bool {
//
// import { jest as Jest } from "@jest/globals";
// Jest.setTimeout
name.to_ascii_lowercase().eq_ignore_ascii_case("jest")
name.cow_to_ascii_lowercase().eq_ignore_ascii_case("jest")
}
#[test]

View file

@ -1,3 +1,4 @@
use cow_utils::CowUtils;
use oxc_ast::{
ast::{match_member_expression, Expression},
AstKind,
@ -231,7 +232,9 @@ fn is_not_array(expr: &Expression, ctx: &LintContext) -> bool {
_ => return false,
};
if ident.starts_with(|c: char| c.is_ascii_uppercase()) && ident.to_ascii_uppercase() != ident {
if ident.starts_with(|c: char| c.is_ascii_uppercase())
&& ident.cow_to_ascii_uppercase() != ident
{
return true;
}

View file

@ -1,3 +1,4 @@
use cow_utils::CowUtils;
use oxc_ast::{
ast::{JSXAttributeItem, JSXAttributeName},
AstKind,
@ -88,7 +89,7 @@ fn get_replacement(node: &str) -> Option<&'static str> {
return None;
}
let node_lower = node.to_ascii_lowercase();
let node_lower = node.cow_to_ascii_lowercase();
if node_lower == "utf-8" || node_lower == "utf8" {
return Some("utf8");

View file

@ -1,5 +1,6 @@
use std::{borrow::Cow, cmp::Ordering};
use cow_utils::CowUtils;
use oxc_ast::{
ast::{
match_member_expression, Argument, CallExpression, Expression, IdentifierName,
@ -255,7 +256,7 @@ fn parse_jest_jest_fn_call<'a>(
name: &'a str,
local: &'a str,
) -> Option<ParsedJestFnCall<'a>> {
let lowercase_name = name.to_ascii_lowercase();
let lowercase_name = name.cow_to_ascii_lowercase();
if !(lowercase_name == "jest" || lowercase_name == "vi") {
return None;