diff --git a/crates/oxc_linter/src/rules/unicorn/no_instanceof_array.rs b/crates/oxc_linter/src/rules/unicorn/no_instanceof_array.rs index b73548462..ca69e8732 100644 --- a/crates/oxc_linter/src/rules/unicorn/no_instanceof_array.rs +++ b/crates/oxc_linter/src/rules/unicorn/no_instanceof_array.rs @@ -42,7 +42,7 @@ impl Rule for NoInstanceofArray { return; } - match &expr.right { + match &expr.right.without_parenthesized() { Expression::Identifier(identifier) if identifier.name == "Array" => { ctx.diagnostic_with_fix(NoInstanceofArrayDiagnostic(expr.span), || { let modified_code = { @@ -78,6 +78,7 @@ fn test() { let fail = vec![ ("arr instanceof Array", None), ("[] instanceof Array", None), + ("[] instanceof (Array)", None), ("[1,2,3] instanceof Array === true", None), ("fun.call(1, 2, 3) instanceof Array", None), ("obj.arr instanceof Array", None), diff --git a/crates/oxc_linter/src/snapshots/no_instanceof_array.snap b/crates/oxc_linter/src/snapshots/no_instanceof_array.snap index fd494e166..ac306347d 100644 --- a/crates/oxc_linter/src/snapshots/no_instanceof_array.snap +++ b/crates/oxc_linter/src/snapshots/no_instanceof_array.snap @@ -16,6 +16,13 @@ expression: no_instanceof_array ╰──── help: The instanceof Array check doesn't work across realms/contexts, for example, frames/windows in browsers or the vm module in Node.js. + ⚠ eslint-plugin-unicorn(no-instanceof-array): Use `Array.isArray()` instead of `instanceof Array`. + ╭─[no_instanceof_array.tsx:1:1] + 1 │ [] instanceof (Array) + · ───────────────────── + ╰──── + help: The instanceof Array check doesn't work across realms/contexts, for example, frames/windows in browsers or the vm module in Node.js. + ⚠ eslint-plugin-unicorn(no-instanceof-array): Use `Array.isArray()` instead of `instanceof Array`. ╭─[no_instanceof_array.tsx:1:1] 1 │ [1,2,3] instanceof Array === true