# Oxc apps_v1.73.0 — oxlint v1.73.0 & oxfmt v0.58.0 - Product: Oxc (https://whatsnew.fyi/product/oxc) - Vendor: Oxc - Date: 2026-07-06 - Version: apps_v1.73.0 - Original notes: https://github.com/oxc-project/oxc/releases/tag/apps_v1.73.0 - Permalink: https://whatsnew.fyi/product/oxc/releases/apps-v1.73.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Implement `explicit-timer-delay` rule for unicorn linter - **added** — Implement `no-confusing-array-with` rule for unicorn linter - **added** — Implement `no-unreachable-loop` rule for eslint linter - **added** — Add `lowercase` and `screamingSnakeCase` options to `unicorn/filename-case` rule - **added** — Add `allowAfterSpread` option to `unicorn/no-array-sort` rule - **added** — Add per-rule timings for type-aware linting - **added** — Add `disallowedValues` option for `react/forbid-dom-props` rule - **added** — Add literal line and root indention primitives to formatter core - **added** — Add no-expand-parent for multiline text to formatter core - **changed** — Check relational comparisons in `eslint/no-constant-binary-expression` rule - **changed** — Add missing options to `jsdoc/require-param` rule - **changed** — Update oxc-css-parser to 0.0.5 - **changed** — Update oxc-graphql-parser to 0.0.5 - **fixed** — Don't flag a type-only import beside a side-effect import in `import/no-duplicates` - **fixed** — Flag `useEffectEvent` escapes in `react/rules-of-hooks` - **fixed** — Map `require.requireActual` to `jest.requireActual` in `no-deprecated-functions` - **fixed** — Handle switch case continuation in `eslint/no-useless-return` - **fixed** — Flag dynamic import() expressions in `eslint/no-restricted-imports` - **fixed** — Detect circular config extends - **fixed** — Omit unneeded semicolon for type members with `no-semi` in formatter ##### Table of Contents - [Oxlint v1.73.0](#oxlint-v1.73.0) - [Oxfmt v0.58.0](#oxfmt-v0.58.0) ##### Oxlint v1.73.0 ###### 🚀 Features - 7db7a29 allocator: Add `ReplaceWith` trait (#24012) (overlookmotel) - a2c97f3 linter/unicorn: Implement `explicit-timer-delay` rule (#23612) (Mikhail Baev) - 85735cb linter/unicorn: Implement `no-confusing-array-with` rule (#23638) (Shekhu☺️) - cb4fbb9 linter/eslint: Implement no-unreachable-loop rule (#23975) (Todor Andonov) - dc32112 linter/eslint/no-constant-binary-expression: Check relational comparisons (#24088) (camc314) - 439c344 linter/jsdoc: Added missing options to `jsdoc/require-param` rule (#23364) (kapobajza) - 62af717 linter/unicorn/filename-case: Add `lowercase` and `screamingSnakeCase` (#24045) (Boshen) - d963967 linter/unicorn/no-array-sort: Add `allowAfterSpread` option (#24043) (Boshen) - 0a75682 linter: Add per-rule timings for type-aware linting (#22488) (camchenry) - 743e222 linter/react: Add `disallowedValues` option for `forbid-dom-props` rule (#23970) (Mikhail Baev) ###### 🐛 Bug Fixes - 7b80010 linter: Use direct binding symbol ids (#24216) (camc314) - 8f94b49 linter/import/no-duplicates: Don't flag a type-only import beside a side-effect import (#24030) (Boshen) - d8c3fee linter/react/rules-of-hooks: Flag `useEffectEvent` escapes (#23764) (Rayan Salhab) - 0a7312b linter/no-deprecated-functions: Map `require.requireActual` to `jest.requireActual` (#23627) (Jerry Zhao) - d9e3ab3 linter/eslint/no-useless-return: Handle switch case continuation (#23984) (camc314) - 0b25582 ast: Type binding node `typeAnnotation` as `TSTypeAnnotation | null` (#23113) (Boshen) - 122d112 linter/eslint/no-restricted-imports: Flag dynamic import() expressions (#24029) (Boshen) - 59b6b83 linter: Avoid `OnceLock` re-entry on cyclic `export *` re-exports (#23632) (Jerry Zhao) - dd09af0 linter/import/namespace: Avoid panic on destructuring of an unresolvable namespace re-export (#23626) (Jerry Zhao) - bdb51c7 linter/jest/prefer-ending-with-an-expect: Validate config patterns (#24122) (camc314) - e383843 linter/unicorn/prefer-modern-dom-apis: Skip fixer for non identifier arguments (#23630) (Jerry Zhao) - 0ac4c83 linter: Detect circular config extends (#24115) (camc314) - bae1edf linter/import/namespace: Check namespace imports after named imports (#24094) (camc314) - cd8fdfe linter/eslint/no-eval: Recognize Array.from family thisArg (#24091) (camc314) - 851ee43 linter/eslint/no-eval: Resolve this binding for functions returned from an IIFE (#23643) (Jerry Zhao) - 002ab35 linter/unicorn: Avoid prefer-array-find rest destructuring false positive (#23654) (ColemanDunn) - 01c8775 linter/unicorn/filename-case: Keep digits attached in screamingSnakeCase (#24056) (Boshen) - f256941 linter: Recognize `@effect/vitest` as a vitest import source (#24025) (Boshen) - 73eeb1d linter/import/extensions: Honor per-extension `never` for explicit extensions (#24031) (Boshen) - d4ebe1f linter: Reject non-object oxlint config files (#24026) (Boshen) - 45d607d linter/react/forbid-component-props: Make allow/disallow lists optional in schema (#24024) (Boshen) - 54076ad linter/unicorn/no-array-for-each: Suggest entries loop for index callbacks (#24004) (camc314) - d057736 linter/jsdoc: Avoid param root underflow (#23945) (camc314) - 29c76bf linter/unicorn/prefer-at: Skip object numeric-key access (#23909) (Gaurav Dubey) ###### ⚡ Performance - 657a8fc linter/oxc/bad-array-method-on-arguments: Only run on member expressions instead of all identifiers (#24164) (camchenry) - 073d9e7 linter/eslint/prefer-rest-params: Run on functions instead of all identifiers (#24163) (camchenry) - e5a4162 linter/jest/no-confusing-set-timeout: Early exit fast path (#24092) (camc314) - bca7ce5 linter: Only run react-perf rules on JSX attribute nodes (#24083) (camchenry) - 6881bf6 linter: Compute `apply_overrides` rule set lazily (#23648) (Jerry Zhao) - 911c106 linter/eslint/no-obj-calls: Use resolved reference instead of scope walk (# _[Truncated at 4000 characters — full notes: https://github.com/oxc-project/oxc/releases/tag/apps_v1.73.0]_