mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
A fix for the work done in: https://github.com/oxc-project/oxc/pull/2905 The existing code checks if _all_ import entries in a ModuleRecord are type-only, when determining if the ModuleRecord should be skipped when checking for cycles. This is incorrect. To demonstrate the problem: Running the `no-cycles` rule, with `ignoreTypes` enabled, on the following example code will cause a cycle to be reported between Module A and Module B ```typescript // Module A import type { Bar } from './b'; import { Baz } from './c' // Module B import type { Foo } from './a'; // Module C export const Baz = 'baz'; ``` The reason this is happening is because the import to Module C in Module A is causing the `was_imported_as_type` variable to evaluate to `false`, since the Module C import is not type-only. What we actually want to do is skip visiting Module B entirely, by checking if its import request from Module A is type-only. This PR fixes the logic so that only the import entries for the next ModuleRecord are considered when determining `was_imported_as_type`. |
||
|---|---|---|
| .. | ||
| import | ||
| eslint_config.json | ||