Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .changeset/silent-bottles-film.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
"@biomejs/biome": patch
---

Fixed [#8300](https://github.com/biomejs/biome/issues/8300): [`noUnusedImports`](https://biomejs.dev/linter/rules/no-unused-imports/) now detects JSDoc tags on object properties.

```js
import type LinkOnObjectProperty from "mod";

const testLinkOnObjectProperty = {
/**
* {@link LinkOnObjectProperty}
*/
property: 0,
};
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ use biome_js_factory::make::{js_identifier_binding, js_module, js_module_item_li
use biome_js_semantic::{ReferencesExtensions, SemanticModel};
use biome_js_syntax::{
AnyJsBinding, AnyJsClassMember, AnyJsCombinedSpecifier, AnyJsDeclaration, AnyJsImportClause,
AnyJsNamedImportSpecifier, AnyTsTypeMember, JsExport, JsLanguage, JsNamedImportSpecifiers,
JsStaticMemberAssignment, JsSyntaxNode, T, TsEnumMember,
AnyJsNamedImportSpecifier, AnyJsObjectMember, AnyTsTypeMember, JsExport, JsLanguage,
JsNamedImportSpecifiers, JsStaticMemberAssignment, JsSyntaxNode, T, TsEnumMember,
};
use biome_jsdoc_comment::JsdocComment;
use biome_rowan::{
Expand Down Expand Up @@ -133,7 +133,7 @@ struct JsDocTypeCollectorVisitor {
}

declare_node_union! {
pub AnyJsWithTypeReferencingJsDoc = AnyJsDeclaration | AnyJsClassMember | AnyTsTypeMember | TsEnumMember | JsExport | JsStaticMemberAssignment
pub AnyJsWithTypeReferencingJsDoc = AnyJsDeclaration | AnyJsClassMember | AnyJsObjectMember | AnyTsTypeMember | TsEnumMember | JsExport | JsStaticMemberAssignment
}

impl Visitor for JsDocTypeCollectorVisitor {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import TypeOnGlobalVariable from "mod";
import TypeOnFunctionVariable from "mod";
import TypeOnTypeDef from "mod";
import TypeOnExportedFunction from "mod";
import TypeOnObjectProperty from "mod";

/**
* @typedef {TypeOnTypeDef} TestTypeOnTypeDef
Expand Down Expand Up @@ -58,3 +59,10 @@ function testTypeOnFunctionVariable() {
*/
let testTypeOnFunctionVariable;
}

const testTypeOnObjectProperty = {
/**
* @type {TypeOnObjectProperty}
*/
property: 0,
};
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import TypeOnGlobalVariable from "mod";
import TypeOnFunctionVariable from "mod";
import TypeOnTypeDef from "mod";
import TypeOnExportedFunction from "mod";
import TypeOnObjectProperty from "mod";

/**
* @typedef {TypeOnTypeDef} TestTypeOnTypeDef
Expand Down Expand Up @@ -65,4 +66,11 @@ function testTypeOnFunctionVariable() {
let testTypeOnFunctionVariable;
}

const testTypeOnObjectProperty = {
/**
* @type {TypeOnObjectProperty}
*/
property: 0,
};

```
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import type LinkOnInterfaceIndexer from "mod";
import type LinkOnEnum from "mod";
import type LinkOnEnumMember from "mod";

import type LinkOnObjectProperty from "mod";


/**
* {@link LinkOnFunction}
Expand Down Expand Up @@ -108,4 +110,11 @@ enum TestLinkOnEnumMember {
* {@link LinkOnEnumMember}
*/
member
}
}

const testLinkOnObjectProperty = {
/**
* {@link LinkOnObjectProperty}
*/
property: 0,
};
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ import type LinkOnInterfaceIndexer from "mod";
import type LinkOnEnum from "mod";
import type LinkOnEnumMember from "mod";

import type LinkOnObjectProperty from "mod";


/**
* {@link LinkOnFunction}
Expand Down Expand Up @@ -115,4 +117,12 @@ enum TestLinkOnEnumMember {
*/
member
}

const testLinkOnObjectProperty = {
/**
* {@link LinkOnObjectProperty}
*/
property: 0,
};

```
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import type LinkOnInterfaceIndexer from "mod";
import type LinkOnEnum from "mod";
import type LinkOnEnumMember from "mod";

import type LinkOnObjectProperty from "mod";


/**
* {@linkcode LinkOnFunction}
Expand Down Expand Up @@ -108,4 +110,11 @@ enum TestLinkOnEnumMember {
* {@linkcode LinkOnEnumMember}
*/
member
}
}

const testLinkOnObjectProperty = {
/**
* {@linkcode LinkOnObjectProperty}
*/
property: 0,
};
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ import type LinkOnInterfaceIndexer from "mod";
import type LinkOnEnum from "mod";
import type LinkOnEnumMember from "mod";

import type LinkOnObjectProperty from "mod";


/**
* {@linkcode LinkOnFunction}
Expand Down Expand Up @@ -115,4 +117,12 @@ enum TestLinkOnEnumMember {
*/
member
}

const testLinkOnObjectProperty = {
/**
* {@linkcode LinkOnObjectProperty}
*/
property: 0,
};

```
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import type LinkOnInterfaceIndexer from "mod";
import type LinkOnEnum from "mod";
import type LinkOnEnumMember from "mod";

import type LinkOnObjectProperty from "mod";


/**
* {@linkplain LinkOnFunction}
Expand Down Expand Up @@ -108,4 +110,11 @@ enum TestLinkOnEnumMember {
* {@linkplain LinkOnEnumMember}
*/
member
}
}

const testLinkOnObjectProperty = {
/**
* {@linkplain LinkOnObjectProperty}
*/
property: 0,
};
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ import type LinkOnInterfaceIndexer from "mod";
import type LinkOnEnum from "mod";
import type LinkOnEnumMember from "mod";

import type LinkOnObjectProperty from "mod";


/**
* {@linkplain LinkOnFunction}
Expand Down Expand Up @@ -115,4 +117,12 @@ enum TestLinkOnEnumMember {
*/
member
}

const testLinkOnObjectProperty = {
/**
* {@linkplain LinkOnObjectProperty}
*/
property: 0,
};

```