diff --git a/packages/knip/src/typescript/get-imports-and-exports.ts b/packages/knip/src/typescript/get-imports-and-exports.ts index fc3c9c40b..594360854 100644 --- a/packages/knip/src/typescript/get-imports-and-exports.ts +++ b/packages/knip/src/typescript/get-imports-and-exports.ts @@ -353,18 +353,16 @@ const getImportsAndExports = ( } else { imports.refs.add(id); } - } else if (imports.importedNs.has(id)) { - if (isConsiderReferencedNS(node)) { - // Pattern: fn(NS), { ...NS } etc. (https://knip.dev/guides/namespace-imports) - imports.refs.add(id); - } else if (isObjectEnumerationCallExpressionArgument(node)) { - // Pattern: Object.keys(NS) - imports.refs.add(id); - } else if (isInForIteration(node)) { - // Pattern: for (const x in NS) { } - // Pattern: for (const x of NS) { } - imports.refs.add(id); - } + } else if (imports.importedNs.has(id) && isConsiderReferencedNS(node)) { + // Pattern: fn(NS), { ...NS } etc. (https://knip.dev/guides/namespace-imports) + imports.refs.add(id); + } else if (isObjectEnumerationCallExpressionArgument(node)) { + // Pattern: Object.keys(NS) + imports.refs.add(id); + } else if (isInForIteration(node)) { + // Pattern: for (const x in NS) { } + // Pattern: for (const x of NS) { } + imports.refs.add(id); } } } diff --git a/packages/knip/test/enum-members-enumerated.test.ts b/packages/knip/test/enum-members-enumerated.test.ts new file mode 100644 index 000000000..6c7c02165 --- /dev/null +++ b/packages/knip/test/enum-members-enumerated.test.ts @@ -0,0 +1,21 @@ +import { test } from 'bun:test'; +import assert from 'node:assert/strict'; +import { main } from '../src/index.js'; +import { resolve } from '../src/util/path.js'; +import baseArguments from './helpers/baseArguments.js'; +import baseCounters from './helpers/baseCounters.js'; + +const cwd = resolve('fixtures/enum-members-enumerated'); + +test('Consider enum enumerated enum members used', async () => { + const { counters } = await main({ + ...baseArguments, + cwd, + }); + + assert.deepEqual(counters, { + ...baseCounters, + processed: 3, + total: 3, + }); +});