Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions crates/oxc_linter/src/config/rules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,10 @@ fn transform_rule_and_plugin_name<'a>(
return (rule_name, "eslint");
}

if plugin_name == "unicorn" && rule_name == "no-negated-condition" {
return ("no-negated-condition", "eslint");
}

(rule_name, plugin_name)
}

Expand Down
4 changes: 2 additions & 2 deletions crates/oxc_linter/src/rules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ mod eslint {
pub mod no_loss_of_precision;
pub mod no_magic_numbers;
pub mod no_multi_str;
pub mod no_negated_condition;
pub mod no_nested_ternary;
pub mod no_new;
pub mod no_new_func;
Expand Down Expand Up @@ -320,7 +321,6 @@ mod unicorn {
pub mod no_length_as_slice_end;
pub mod no_lonely_if;
pub mod no_magic_array_flat_depth;
pub mod no_negated_condition;
pub mod no_negation_in_equality_check;
pub mod no_nested_ternary;
pub mod no_new_array;
Expand Down Expand Up @@ -587,6 +587,7 @@ oxc_macros::declare_all_lint_rules! {
eslint::no_label_var,
eslint::no_loss_of_precision,
eslint::no_magic_numbers,
eslint::no_negated_condition,
eslint::no_multi_str,
eslint::no_new_func,
eslint::no_new_native_nonconstructor,
Expand Down Expand Up @@ -918,7 +919,6 @@ oxc_macros::declare_all_lint_rules! {
unicorn::no_length_as_slice_end,
unicorn::no_lonely_if,
unicorn::no_magic_array_flat_depth,
unicorn::no_negated_condition,
unicorn::no_negation_in_equality_check,
unicorn::no_nested_ternary,
unicorn::no_new_array,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,20 @@ fn test() {
use crate::tester::Tester;

let pass = vec![
"if (a) {}",
"if (a) {} else {}",
"if (!a) {}",
"if (!a) {} else if (b) {}",
"if (!a) {} else if (b) {} else {}",
"if (a == b) {}",
"if (a == b) {} else {}",
"if (a != b) {}",
"if (a != b) {} else if (b) {}",
"if (a != b) {} else if (b) {} else {}",
"if (a !== b) {}",
"if (a === b) {} else {}",
"a ? b : c",
// Test cases from eslint-plugin-unicorn
r"if (a) {}",
r"if (a) {} else {}",
r"if (!a) {}",
Expand All @@ -122,6 +136,13 @@ fn test() {
];

let fail = vec![
"if (!a) {;} else {;}",
"if (a != b) {;} else {;}",
"if (a !== b) {;} else {;}",
"!a ? b : c",
"a != b ? c : d",
"a !== b ? c : d",
// Test cases from eslint-plugin-unicorn
r"if (!a) {;} else {;}",
r"if (a != b) {;} else {;}",
r"if (a !== b) {;} else {;}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,126 +2,168 @@
source: crates/oxc_linter/src/tester.rs
snapshot_kind: text
---
⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:5]
1 │ if (!a) {;} else {;}
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:5]
1 │ if (a != b) {;} else {;}
· ──────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:5]
1 │ if (a !== b) {;} else {;}
· ───────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ !a ? b : c
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ a != b ? c : d
· ──────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ a !== b ? c : d
· ───────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:5]
1 │ if (!a) {;} else {;}
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:5]
1 │ if (a != b) {;} else {;}
· ──────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:5]
1 │ if (a !== b) {;} else {;}
· ───────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ !a ? b : c
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ a != b ? c : d
· ──────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ a !== b ? c : d
· ───────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:4]
1 │ (( !a )) ? b : c
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ !(( a )) ? b : c
· ────────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:4]
1 │ if(!(( a ))) b(); else c();
· ────────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:7]
1 │ if((( !a ))) b(); else c();
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:21]
1 │ function a() {return!a ? b : c}
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:21]
1 │ function a() {return!(( a )) ? b : c}
· ────────
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ !a ? b : c ? d : e
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:1]
1 │ !a ? b : (( c ? d : e ))
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:4]
1 │ if(!a) b(); else c()
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:4]
1 │ if(!a) {b()} else {c()}
· ──
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:4]
1 │ if(!!a) b(); else c();
· ───
╰────
help: Remove the negation operator and switch the consequent and alternate branches.

⚠ eslint-plugin-unicorn(no-negated-condition): Unexpected negated condition.
⚠ eslint(no-negated-condition): Unexpected negated condition.
╭─[no_negated_condition.tsx:1:2]
1 │ (!!a) ? b() : c();
· ───
Expand Down