summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2024-09-27 16:14:17 +0200
committerGitHub <noreply@github.com>2024-09-27 14:14:17 +0000
commit6f0fbceaf213f523bc68d23ea28fd457499f3a75 (patch)
tree5080be4cf51993198dc3ad54b20889f25a7b93d0
parent3134abefa462ead8bb8e2e4aa8a5b57910f3d430 (diff)
fix(lint): correctly handle old jsx in linter (#25902)
Previously the CLI was incorrectly reporting `React` as unused in a JSX file that uses the "old" transform. The LSP was already handling this correctly.
-rw-r--r--cli/args/mod.rs6
-rw-r--r--tests/specs/lint/jsx/__test__.jsonc14
-rw-r--r--tests/specs/lint/jsx/main.jsx1
-rw-r--r--tests/specs/lint/jsx/main_windows.out12
-rw-r--r--tests/specs/lint/jsx/react-jsx.out (renamed from tests/specs/lint/jsx/main_unix.out)10
-rw-r--r--tests/specs/lint/jsx/react-jsx/deno.json5
-rw-r--r--tests/specs/lint/jsx/react-jsx/mod.tsx3
-rw-r--r--tests/specs/lint/jsx/react.out1
-rw-r--r--tests/specs/lint/jsx/react/deno.json1
-rw-r--r--tests/specs/lint/jsx/react/mod.tsx3
10 files changed, 27 insertions, 29 deletions
diff --git a/cli/args/mod.rs b/cli/args/mod.rs
index a11d3bc10..995a04823 100644
--- a/cli/args/mod.rs
+++ b/cli/args/mod.rs
@@ -1327,11 +1327,9 @@ impl CliOptions {
)?;
Ok(deno_lint::linter::LintConfig {
- default_jsx_factory: transpile_options
- .jsx_automatic
+ default_jsx_factory: (!transpile_options.jsx_automatic)
.then(|| transpile_options.jsx_factory.clone()),
- default_jsx_fragment_factory: transpile_options
- .jsx_automatic
+ default_jsx_fragment_factory: (!transpile_options.jsx_automatic)
.then(|| transpile_options.jsx_fragment_factory.clone()),
})
}
diff --git a/tests/specs/lint/jsx/__test__.jsonc b/tests/specs/lint/jsx/__test__.jsonc
index 42dda30a5..b929e12d4 100644
--- a/tests/specs/lint/jsx/__test__.jsonc
+++ b/tests/specs/lint/jsx/__test__.jsonc
@@ -1,15 +1,15 @@
{
"steps": [
{
- "if": "windows",
- "args": "lint main.jsx",
- "output": "main_windows.out",
- "exitCode": 1
+ "args": "lint",
+ "cwd": "./react",
+ "output": "react.out",
+ "exitCode": 0
},
{
- "if": "unix",
- "args": "lint main.jsx",
- "output": "main_unix.out",
+ "args": "lint",
+ "cwd": "./react-jsx",
+ "output": "react-jsx.out",
"exitCode": 1
}
]
diff --git a/tests/specs/lint/jsx/main.jsx b/tests/specs/lint/jsx/main.jsx
deleted file mode 100644
index 625e7d430..000000000
--- a/tests/specs/lint/jsx/main.jsx
+++ /dev/null
@@ -1 +0,0 @@
-const data = <div>hello</div>;
diff --git a/tests/specs/lint/jsx/main_windows.out b/tests/specs/lint/jsx/main_windows.out
deleted file mode 100644
index ec6ebecad..000000000
--- a/tests/specs/lint/jsx/main_windows.out
+++ /dev/null
@@ -1,12 +0,0 @@
-error[no-unused-vars]: `data` is never used
- --> [WILDCARD]lint\jsx\main.jsx:1:7
- |
-1 | const data = <div>hello</div>;
- | ^^^^
- = hint: If this is intentional, prefix it with an underscore like `_data`
-
- docs: https://lint.deno.land/rules/no-unused-vars
-
-
-Found 1 problem
-Checked 1 file
diff --git a/tests/specs/lint/jsx/main_unix.out b/tests/specs/lint/jsx/react-jsx.out
index 08816e9fe..c8c700779 100644
--- a/tests/specs/lint/jsx/main_unix.out
+++ b/tests/specs/lint/jsx/react-jsx.out
@@ -1,9 +1,9 @@
-error[no-unused-vars]: `data` is never used
- --> [WILDCARD]lint/jsx/main.jsx:1:7
+error[no-unused-vars]: `React` is never used
+ --> [WILDCARD]mod.tsx:1:7
|
-1 | const data = <div>hello</div>;
- | ^^^^
- = hint: If this is intentional, prefix it with an underscore like `_data`
+1 | const React = { createElement() {} };
+ | ^^^^^
+ = hint: If this is intentional, prefix it with an underscore like `_React`
docs: https://lint.deno.land/rules/no-unused-vars
diff --git a/tests/specs/lint/jsx/react-jsx/deno.json b/tests/specs/lint/jsx/react-jsx/deno.json
new file mode 100644
index 000000000..a224293f4
--- /dev/null
+++ b/tests/specs/lint/jsx/react-jsx/deno.json
@@ -0,0 +1,5 @@
+{
+ "compilerOptions": {
+ "jsx": "react-jsx"
+ }
+}
diff --git a/tests/specs/lint/jsx/react-jsx/mod.tsx b/tests/specs/lint/jsx/react-jsx/mod.tsx
new file mode 100644
index 000000000..be1e843c1
--- /dev/null
+++ b/tests/specs/lint/jsx/react-jsx/mod.tsx
@@ -0,0 +1,3 @@
+const React = { createElement() {} };
+
+const _div = <div />;
diff --git a/tests/specs/lint/jsx/react.out b/tests/specs/lint/jsx/react.out
new file mode 100644
index 000000000..c05ac45a1
--- /dev/null
+++ b/tests/specs/lint/jsx/react.out
@@ -0,0 +1 @@
+Checked 1 file
diff --git a/tests/specs/lint/jsx/react/deno.json b/tests/specs/lint/jsx/react/deno.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/tests/specs/lint/jsx/react/deno.json
@@ -0,0 +1 @@
+{}
diff --git a/tests/specs/lint/jsx/react/mod.tsx b/tests/specs/lint/jsx/react/mod.tsx
new file mode 100644
index 000000000..be1e843c1
--- /dev/null
+++ b/tests/specs/lint/jsx/react/mod.tsx
@@ -0,0 +1,3 @@
+const React = { createElement() {} };
+
+const _div = <div />;