mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 04:08:41 +00:00
fix(linter/no-unused-vars): false positive in some default export cases (#6395)
Fixes a false positive in `eslint/no-unused-vars` when a function expression is
default exported within an array.
```js
export default [ function foo() {} ]
```
This commit is contained in:
parent
e08f956c00
commit
d3e59c6a6d
2 changed files with 19 additions and 1 deletions
|
|
@ -182,7 +182,16 @@ impl<'s, 'a> Symbol<'s, 'a> {
|
|||
AstKind::ModuleDeclaration(module) => {
|
||||
return module.is_export();
|
||||
}
|
||||
AstKind::VariableDeclaration(_) => {
|
||||
AstKind::ExportDefaultDeclaration(_) => {
|
||||
return true;
|
||||
}
|
||||
AstKind::VariableDeclaration(_)
|
||||
| AstKind::ExpressionArrayElement(_)
|
||||
| AstKind::ArrayExpressionElement(_)
|
||||
| AstKind::ArrayExpression(_)
|
||||
| AstKind::ParenthesizedExpression(_)
|
||||
| AstKind::TSAsExpression(_)
|
||||
| AstKind::TSSatisfiesExpression(_) => {
|
||||
continue;
|
||||
}
|
||||
_ => {
|
||||
|
|
|
|||
|
|
@ -730,6 +730,15 @@ fn test_exports() {
|
|||
"export interface A {}",
|
||||
"export type A = string",
|
||||
"export enum E { }",
|
||||
// default exports
|
||||
"export default class Foo {}",
|
||||
"export default [ class Foo {} ];",
|
||||
"export default function foo() {}",
|
||||
"export default { foo() {} };",
|
||||
"export default { foo: function foo() {} };",
|
||||
"export default { get foo() {} };",
|
||||
"export default [ function foo() {} ];",
|
||||
"export default (function foo() { return 1 })();",
|
||||
// "export enum E { A, B }",
|
||||
"const a = 1; export { a }",
|
||||
"const a = 1; export default a",
|
||||
|
|
|
|||
Loading…
Reference in a new issue