Skip to content

Commit e85761c

Browse files
fix(biome_js_analyze): add JsExport to be walked by JsDocTypeCollectorVisitior (#6565)
Co-authored-by: Naoki Ikeguchi <me@s6n.jp>
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy