Skip to content

Commit 4e748b5

Browse files
authoredSep 8, 2024··
refactor(linter): replace ast "compare by hash" to "compare by content" (#5602)
relates #5600
1 parent 20d0068 commit 4e748b5

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed
 

‎crates/oxc_linter/src/rules/eslint/no_dupe_else_if.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ use oxc_ast::{
44
};
55
use oxc_diagnostics::OxcDiagnostic;
66
use oxc_macros::declare_oxc_lint;
7+
use oxc_span::cmp::ContentEq;
78
use oxc_span::{GetSpan, Span};
89
use oxc_syntax::operator::LogicalOperator;
910

10-
use crate::{ast_util::calculate_hash, context::LintContext, rule::Rule, AstNode};
11+
use crate::{context::LintContext, rule::Rule, AstNode};
1112

1213
fn no_dupe_else_if_diagnostic(first_test: Span, second_test: Span) -> OxcDiagnostic {
1314
OxcDiagnostic::warn("duplicate conditions in if-else-if chains")
@@ -154,7 +155,7 @@ fn is_equal<'a, 'b>(a: &'a Expression<'b>, b: &'a Expression<'b>) -> bool {
154155
|| (is_equal(&a.left, &b.right) && is_equal(&a.right, &b.left))
155156
}
156157

157-
(a, b) => calculate_hash(a) == calculate_hash(b),
158+
(a, b) => a.content_eq(b),
158159
}
159160
}
160161

‎crates/oxc_linter/src/rules/eslint/no_self_compare.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use oxc_ast::AstKind;
22
use oxc_diagnostics::OxcDiagnostic;
33
use oxc_macros::declare_oxc_lint;
4+
use oxc_span::cmp::ContentEq;
45
use oxc_span::{GetSpan, Span};
56

6-
use crate::{ast_util::calculate_hash, context::LintContext, rule::Rule, AstNode};
7+
use crate::{context::LintContext, rule::Rule, AstNode};
78

89
fn no_self_compare_diagnostic(span: Span, span1: Span) -> OxcDiagnostic {
910
OxcDiagnostic::warn("Disallow comparisons where both sides are exactly the same")
@@ -44,10 +45,8 @@ impl Rule for NoSelfCompare {
4445
if !binary_expr.operator.is_compare() && !binary_expr.operator.is_equality() {
4546
return;
4647
}
47-
let left = calculate_hash(&binary_expr.left);
48-
let right = calculate_hash(&binary_expr.right);
4948

50-
if left == right {
49+
if binary_expr.left.content_eq(&binary_expr.right) {
5150
ctx.diagnostic(no_self_compare_diagnostic(
5251
binary_expr.left.span(),
5352
binary_expr.right.span(),

0 commit comments

Comments
 (0)
Please sign in to comment.