Skip to content

Commit e85761c

Browse files
fix(biome_js_analyze): add JsExport to be walked by JsDocTypeCollectorVisitior (#6565)
Co-authored-by: Naoki Ikeguchi <[email protected]>
1 parent 5f42630 commit e85761c

File tree

4 files changed

+20
-3
lines changed

4 files changed

+20
-3
lines changed

.changeset/large-showers-leave.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@biomejs/biome": patch
3+
---
4+
5+
Fixed [#4677](https://github.com/biomejs/biome/issues/4677): Now the `noUnusedImports` rule won't produce diagnostics for types used in JSDoc comment of exports.

crates/biome_js_analyze/src/lint/correctness/no_unused_imports.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ use biome_js_factory::make::{js_identifier_binding, js_module, js_module_item_li
1717
use biome_js_semantic::{ReferencesExtensions, SemanticModel};
1818
use biome_js_syntax::{
1919
AnyJsBinding, AnyJsClassMember, AnyJsCombinedSpecifier, AnyJsDeclaration, AnyJsImportClause,
20-
AnyJsNamedImportSpecifier, AnyTsTypeMember, JsLanguage, JsNamedImportSpecifiers, JsSyntaxNode,
21-
T, TsEnumMember,
20+
AnyJsNamedImportSpecifier, AnyTsTypeMember, JsExport, JsLanguage, JsNamedImportSpecifiers,
21+
JsSyntaxNode, T, TsEnumMember,
2222
};
2323
use biome_jsdoc_comment::JsdocComment;
2424
use biome_rowan::{
@@ -124,7 +124,7 @@ struct JsDocTypeCollectorVisitior {
124124
}
125125

126126
declare_node_union! {
127-
pub AnyJsWithTypeReferencingJsDoc = AnyJsDeclaration | AnyJsClassMember | AnyTsTypeMember | TsEnumMember
127+
pub AnyJsWithTypeReferencingJsDoc = AnyJsDeclaration | AnyJsClassMember | AnyTsTypeMember | TsEnumMember | JsExport
128128
}
129129

130130
impl Visitor for JsDocTypeCollectorVisitior {

crates/biome_js_analyze/tests/specs/correctness/noUnusedImports/issue_4677_jsdoc.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import TypeOnClassField from "mod";
88
import TypeOnGlobalVariable from "mod";
99
import TypeOnFunctionVariable from "mod";
1010
import TypeOnTypeDef from "mod";
11+
import TypeOnExportedFunction from "mod";
1112

1213
/**
1314
* @typedef {TypeOnTypeDef} TestTypeOnTypeDef
@@ -18,6 +19,11 @@ import TypeOnTypeDef from "mod";
1819
*/
1920
function testTypeOnFunction(param) {}
2021

22+
/**
23+
* @param {TypeOnExportedFunction} param
24+
*/
25+
export function testTypeOnExportedFunction(param) {}
26+
2127
class TestTypeOnClassMethodParam {
2228
/**
2329
* @param {TypeOnClassMethodParam} param

crates/biome_js_analyze/tests/specs/correctness/noUnusedImports/issue_4677_jsdoc.js.snap

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import TypeOnClassField from "mod";
1414
import TypeOnGlobalVariable from "mod";
1515
import TypeOnFunctionVariable from "mod";
1616
import TypeOnTypeDef from "mod";
17+
import TypeOnExportedFunction from "mod";
1718
1819
/**
1920
* @typedef {TypeOnTypeDef} TestTypeOnTypeDef
@@ -24,6 +25,11 @@ import TypeOnTypeDef from "mod";
2425
*/
2526
function testTypeOnFunction(param) {}
2627
28+
/**
29+
* @param {TypeOnExportedFunction} param
30+
*/
31+
export function testTypeOnExportedFunction(param) {}
32+
2733
class TestTypeOnClassMethodParam {
2834
/**
2935
* @param {TypeOnClassMethodParam} param

0 commit comments

Comments
 (0)