fix(linter) Fix no instanceof array with parenthesis (#1243)

This commit is contained in:
Cameron 2023-11-13 00:41:33 +00:00 committed by GitHub
parent e60c287b77
commit 3a92828a0a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View file

@ -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),

View file

@ -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