diff --git a/packages/eslint-plugin/tests/rules/consistent-type-imports.test.ts b/packages/eslint-plugin/tests/rules/consistent-type-imports.test.ts index 1910b1986ee..ae171e0d87e 100644 --- a/packages/eslint-plugin/tests/rules/consistent-type-imports.test.ts +++ b/packages/eslint-plugin/tests/rules/consistent-type-imports.test.ts @@ -536,6 +536,18 @@ ruleTester.run('consistent-type-imports', rule, { parserOptions: withMetaConfigParserOptions, }, + // https://github.com/typescript-eslint/typescript-eslint/issues/7327 + { + code: ` + import type { ClassA } from './classA'; + + export class ClassB { + public constructor(node: ClassA) {} + } + `, + parserOptions: withMetaConfigParserOptions, + }, + // https://github.com/typescript-eslint/typescript-eslint/issues/2989 ` import type * as constants from './constants'; diff --git a/packages/scope-manager/src/referencer/ClassVisitor.ts b/packages/scope-manager/src/referencer/ClassVisitor.ts index 6123ab15e79..f1f4a746d3b 100644 --- a/packages/scope-manager/src/referencer/ClassVisitor.ts +++ b/packages/scope-manager/src/referencer/ClassVisitor.ts @@ -192,7 +192,7 @@ class ClassVisitor extends Visitor { if ( !withMethodDecorators && methodNode.kind === 'constructor' && - this.#classNode.decorators + this.#classNode.decorators.length ) { withMethodDecorators = true; } diff --git a/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-inner.ts.shot b/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-inner.ts.shot index 94ab6357ed7..f46cd16af2e 100644 --- a/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-inner.ts.shot +++ b/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-inner.ts.shot @@ -57,7 +57,7 @@ ScopeManager { identifier: Identifier<"T">, isRead: true, isTypeReference: true, - isValueReference: true, + isValueReference: false, isWrite: false, resolved: Variable$5, }, diff --git a/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-outer.ts.shot b/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-outer.ts.shot index 52ad7d4c8a4..226235e8379 100644 --- a/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-outer.ts.shot +++ b/packages/scope-manager/tests/fixtures/class/emit-metadata/nested-class-outer.ts.shot @@ -65,7 +65,7 @@ ScopeManager { identifier: Identifier<"T">, isRead: true, isTypeReference: true, - isValueReference: true, + isValueReference: false, isWrite: false, resolved: Variable$5, },