mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
agent/fix-react-compiler-numeric-object-keys
794 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
2d2b3be43d |
chore(deps): update rust crate sort-package-json to v1 (#25741)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [sort-package-json](https://redirect.github.com/oxc-project/sort-package-json) | workspace.dependencies | major | `0.0.15` → `1.0.0` | --- ### Release Notes <details> <summary>oxc-project/sort-package-json (sort-package-json)</summary> ### [`v1.0.0`](https://redirect.github.com/oxc-project/sort-package-json/blob/HEAD/CHANGELOG.md#100---2026-08-16) [Compare Source](https://redirect.github.com/oxc-project/sort-package-json/compare/v0.0.15...v1.0.0) ##### Changed - **Breaking:** Stabilize the public `SortOptions` API and refresh crate metadata and documentation ([#​158](https://redirect.github.com/oxc-project/sort-package-json/pull/158)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yOS41IiwidXBkYXRlZEluVmVyIjoiNDQuMjkuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Boshen <boshenc@gmail.com> |
||
|
|
f004852aac |
chore(deps): update rust crate sort-package-json to 0.0.15 (#25736)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [sort-package-json](https://redirect.github.com/oxc-project/sort-package-json) | workspace.dependencies | patch | `0.0.14` → `0.0.15` | --- ### Release Notes <details> <summary>oxc-project/sort-package-json (sort-package-json)</summary> ### [`v0.0.15`](https://redirect.github.com/oxc-project/sort-package-json/blob/HEAD/CHANGELOG.md#0015---2026-08-16) [Compare Source](https://redirect.github.com/oxc-project/sort-package-json/compare/v0.0.14...v0.0.15) ##### Fixed - sort devEngines descriptor fields ([#​155](https://redirect.github.com/oxc-project/sort-package-json/pull/155)) ##### Other - *(deps)* update Rust dependencies ([#​157](https://redirect.github.com/oxc-project/sort-package-json/pull/157)) - borrow JSON strings during sorting ([#​156](https://redirect.github.com/oxc-project/sort-package-json/pull/156)) - reduce Rust dev debug info ([#​153](https://redirect.github.com/oxc-project/sort-package-json/pull/153)) - *(deps)* update rust crate ignore to v0.4.33 ([#​151](https://redirect.github.com/oxc-project/sort-package-json/pull/151)) - *(deps)* update rust crates ([#​144](https://redirect.github.com/oxc-project/sort-package-json/pull/144)) - *(deps)* update rust crate ignore to v0.4.30 ([#​142](https://redirect.github.com/oxc-project/sort-package-json/pull/142)) - update sponsor section </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yOS41IiwidXBkYXRlZEluVmVyIjoiNDQuMjkuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
1c4f519e36 |
feat(napi): add Relay transform plugin (#25503)
## What Ports the Relay `graphql` tagged template transform (babel-plugin-relay / swc_relay) as an individual napi transform, per #24914: - **`crates/oxc_relay`** — the core transform as its own crate (modeled on `oxc_react_compiler`): replaces `graphql` tagged templates with references to relay-compiler artifacts. Definition names are extracted textually like `swc_relay` (equivalent to `\b(fragment|mutation|query|subscription)\s+(\w+)` with `#` comments stripped; hand-rolled scanner, no regex dependency). - **`napi/transform-relay`** (`oxc-transform-relay`) — standalone napi package copied from the `napi/transform-react` template: parse → semantic → relay traverse → codegen. Only `graphql` tags are rewritten; TypeScript/JSX syntax is preserved untouched, so the output composes with any downstream toolchain. ## Options | option | default | behavior | |---|---|---| | `artifactDirectory` | unset | when set, the import path is computed lexically relative to the transformed file (babel-plugin-relay `getRelativeImportPath` semantics — swc emits absolute paths instead); unset → `./__generated__/` next to the file | | `language` | `javascript` | `typescript` imports `Name.graphql.ts`, otherwise `Name.graphql.js` | | `eagerEsModules` | `true` | hoisted default imports (babel-plugin-relay ≥ v17 parity); `false` emits inline `require()` (`@swc/plugin-relay` / Next.js behavior) | A `graphql` tag with no extractable definition name produces an error diagnostic (babel throws; swc silently skips). Not supported, documented in both READMEs: dev-mode artifact hash validation, `jsModuleFormat: "haste"`, `isDevVariableName`, swc's Next.js-specific `projects`/`pagesDir`, and GraphQL document validation. closes #24914 --- Implemented with Claude Code. |
||
|
|
cd25e4f56e |
fix(codegen): surface conformance reference panics (#25552)
## Summary Make Codegen conformance failures visible when the Rust reference panics. - Preserve `null` for source text with parser diagnostics. - Return a N-API error for a caught reference panic. - Let Vitest fail the affected fixture instead of silently skipping it. |
||
|
|
2c61dfb7d6 |
chore(deps): update rust crate oxc-browserslist to v5 (#25529)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | major | `4.0.0` → `5.0.0` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v5.0.0`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#500---2026-08-12) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v4.0.0...oxc-browserslist-v5.0.0) ##### Other - clean up code for idiomatic Rust ([#​833](https://redirect.github.com/oxc-project/oxc-browserslist/pull/833)) - rework bundled data around a canonical version table ([#​830](https://redirect.github.com/oxc-project/oxc-browserslist/pull/830)) - cache current node query ([#​831](https://redirect.github.com/oxc-project/oxc-browserslist/pull/831)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
a2433117d2 |
fix(formatter_yaml): bump oxc-yaml-parser for contentless block scalar (#25519)
Fixes #25484 |
||
|
|
79dd965e6b |
chore(deps): update rust crate oxc-browserslist to v4 (#25511)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | major | `3.0.9` → `4.0.0` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v4.0.0`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#400---2026-08-11) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v3.0.13...oxc-browserslist-v4.0.0) ##### Added - add Baseline query support ([#​826](https://redirect.github.com/oxc-project/oxc-browserslist/pull/826)) ##### Other - update dependencies ([#​828](https://redirect.github.com/oxc-project/oxc-browserslist/pull/828)) - Update rust crates ([#​825](https://redirect.github.com/oxc-project/oxc-browserslist/pull/825)) - Update browserslist ([#​820](https://redirect.github.com/oxc-project/oxc-browserslist/pull/820)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4yNC4wIiwidXBkYXRlZEluVmVyIjoiNDQuMjQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
6e1b4ddceb |
refactor(formatter_core,formatter_tests): extract oxc_formatter_tests crate from oxc_formatter_core (#25465)
- Extract `test_harness` feature as crate `oxc_formatter_tests` - This crate will also provide infra for `tasks/prettier_conformance` later |
||
|
|
00e1b762e0 |
refactor(diagnostics): vendor oxc-miette (#25499)
We no longer need to maintain the `oxc-miette` repo as most of the code is now removed, the remaining code is minimal and can be vendored. |
||
|
|
b6f1458dec |
release(crates): oxc v0.144.0 (#25474)
### 💥 BREAKING CHANGES - |
||
|
|
030857b509 |
refactor(diagnostics): update oxc-miette to v4 (#25395)
Remove the miette `Report` wrapper and update oxc-miette to v4's narrowed diagnostic and source protocol. AI-assisted by OpenAI Codex. |
||
|
|
e23dccf338 |
fix(formatter_css): bump oxc-css-parser to accept unknown at-rule with interpolated (#25277)
Fixes #25272 |
||
|
|
45a17c25d1 |
release(crates): oxc v0.143.0 (#25250)
### 💥 BREAKING CHANGES - |
||
|
|
20f68e74a3 |
fix(oxlint,oxfmt): respect .gitignore for walk targets and explicit paths (#25133)
Fixes #25107. The `ignore` crate walker enforces gitignore's "everything under an ignored directory is ignored" rule only by pruning ignored directories during traversal. And it never filters its walk roots. So when a walk target (based on cwd or an explicit CLI target path) is already inside a gitignored tree, pruning never happens and a bare directory pattern like `generated` matches nothing file-level. (even though `git check-ignore` says they are ignored) See also BurntSushi/ripgrep#2595 ### Changes - oxc_config: added `GitignoreChecker` - a pre-walk check that replays git's resolution order over the ancestor chain - Matchers and `.git`/`.jj` probes are cached per directory - oxlint / oxfmt: filter all CLI targets through this check before walking ### Behavior changes - Explicitly passed gitignored files are now skipped (previously always linted/formatted) - `oxlint --no-ignore` no longer force-lints gitignored targets - The same behavior as `--no-ignore` does not disable during walk `.gitignore` <details> <summary>FYI: Current our ignore model overview</summary> Two independent families, AND-ed (a path excluded by any layer is skipped): | Layer | Source | oxlint | oxfmt | | -------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | git-derived (always on, not user-disablable) | nested `.gitignore`, `.git/info/exclude` (during walk) | walker via shared `configure_walk_builder` | same (shared) | | | walk roots / explicit CLI targets | `GitignoreChecker` (this PR) | `GitignoreChecker` (this PR) | | tool-owned | ignore file | `.eslintignore` / `--ignore-path`; disabled by `--no-ignore` | `.prettierignore` / `--ignore-path`; no disable flag | | | CLI patterns | `--ignore-pattern`; disabled by `--no-ignore` | `!pattern` path args | | | config `ignorePatterns` | `LintIgnoreMatcher` (already containment-correct via `matched_path_or_any_parents`); always on | scope-local `is_path_ignored` (same); always on | NOTE: `ignorePatterns` never had this bug, only the walker-backed gitignore layer did; this PR brings it to the same level. A `!` negation in `ignorePatterns` cannot re-include gitignored paths (unchanged; the layers are independent). </details> |
||
|
|
dd28596d0a |
fix(formatter_css): bump oxc-css-parser for substituted at-rule preludes (#25104)
Fixes #25075 |
||
|
|
85d0f4dd1f |
feat(napi): add React Compiler transform binding (#24934)
Adds the `oxc-transform-react` N-API binding and its public CI and publish workflows. AI-assisted. |
||
|
|
46fe15e0cb |
refactor(formatter_yaml): read comment.own_line_columns (#25011)
Also bump `oxc-yaml-parser` for it. Now, `is_own_line` comment check has been gone. |
||
|
|
fc702c1fa9 |
release(crates): oxc v0.142.0 (#24977)
### 💥 BREAKING CHANGES - |
||
|
|
dbf85def42 |
refactor(formatter_graphql): rework comment printing (#24970)
Also fixes #24927 - rework comment printing to follow the rules and align with other formatters - bump `oxc-graphql-parser` - to track comments inside a node's span more accurately |
||
|
|
9d65862a8b |
chore(deps): update rust crates (#24949)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [base64](https://redirect.github.com/marshallpierce/rust-base64) | workspace.dependencies | minor | `0.22.1` → `0.23.0` | | [ignore](https://redirect.github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://redirect.github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | workspace.dependencies | patch | `0.4.30` → `0.4.31` | | [serde_json](https://redirect.github.com/serde-rs/json) | workspace.dependencies | patch | `1.0.150` → `1.0.151` | | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | patch | `3.0.1` → `3.0.3` | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | workspace.dependencies | patch | `1.53.0` → `1.53.1` | --- ### Release Notes <details> <summary>marshallpierce/rust-base64 (base64)</summary> ### [`v0.23.0`](https://redirect.github.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0230) [Compare Source](https://redirect.github.com/marshallpierce/rust-base64/compare/v0.22.1...v0.23.0) - Added more consts for preconfigured configs and engines - Make DecodeError::InvalidLastSymbol more clear by including the decoded value - Added SIMD-accelerated engines behind the default-on `simd-unsafe` feature: `Simd` picks the best instruction set at runtime (AVX2 on `x86_64`, NEON on `aarch64`) and falls back to the scalar `GeneralPurpose` engine, while `Avx2` and `Neon` target one instruction set with no runtime detection and work in `no_std`. The engines support the standard and URL-safe alphabets. - Update MSRV to 1.71.0 - Add support for custom padding symbols </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.31`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.30...ignore-0.4.31) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.30...ignore-0.4.31) </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.151`](https://redirect.github.com/serde-rs/json/releases/tag/v1.0.151) [Compare Source](https://redirect.github.com/serde-rs/json/compare/v1.0.150...v1.0.151) - Add RawValue::from\_string\_unchecked ([#​1331](https://redirect.github.com/serde-rs/json/issues/1331), thanks [@​WonderLawrence](https://redirect.github.com/WonderLawrence)) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v3.0.3`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.3) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/3.0.2...3.0.3) - Documentation improvements ### [`v3.0.2`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.2) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/3.0.1...3.0.2) - Add [`Error::new_range(start..end, "msg")`](https://docs.rs/syn/3/syn/struct.Error.html#method.new_range) ([#​2068](https://redirect.github.com/dtolnay/syn/issues/2068), [#​2070](https://redirect.github.com/dtolnay/syn/issues/2070)) - Add [`Cursor::prev_span`](https://docs.rs/syn/3/syn/buffer/struct.Cursor.html#method.prev_span) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.53.1`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.53.1): Tokio v1.53.1 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.53.0...tokio-1.53.1) ### 1.53.1 (July 20th, 2026) ##### Fixed - signal: restore MSRV by removing `OnceLock::wait` from the Windows handler ([#​8300]) ##### Fixed (unstable) - time: fix alt timer cancellation and insertion race ([#​8252]) ##### Documented - runtime: remove dead link definition in Runtime::block\_on ([#​8301]) [#​8252]: https://redirect.github.com/tokio-rs/tokio/pull/8252 [#​8300]: https://redirect.github.com/tokio-rs/tokio/pull/8300 [#​8301]: https://redirect.github.com/tokio-rs/tokio/pull/8301 </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
4b6a87847c | chore(deps): sort and annotate workspace dependencies (#24822) | ||
|
|
fe3d170074 |
test(prettier_conformance): add YAML formatter (#24535)
> yaml compatibility: 346/354 (97.74%), 0 files skipped This is currently the limit, as we have fixed several bugs in Prettier, ensuring consistent behavior. |
||
|
|
2357a10dfa |
feat(formatter_yaml): implement YAML formatter (#24534)
Add `oxc_formatter_yaml` crate using `oxc_yaml_parser`. |
||
|
|
fdcdb10d0f |
chore(cargo-shear): remove redundant ignore (#24767)
<img width="730" height="185" alt="Screenshot 2026-07-21 at 16 20 23" src="https://github.com/user-attachments/assets/f0d41a1f-fa49-4d7c-83d0-7f5f07ac04e7" /> |
||
|
|
14533a3dc1 |
release(crates): oxc v0.141.0 (#24714)
### 💥 BREAKING CHANGES - |
||
|
|
fd7cf5b500 |
fix(formatter_css): update oxc-css-parser to 0.0.9 (#24745)
Fixes #24726 |
||
|
|
e81b2ff6c5 |
fix(oxlint,oxfmt): report error for invalid glob patterns (#24744)
Fixes #24612 - Update `fast-glob` to `1.1.0` which exposes `validate()` api - Use it in `oxc_config`, apps will be validated through `deserialize` - Oxfmt supports globs for CLI paths, also validated |
||
|
|
c399367877 |
fix(formatter_css): update oxc-css-parser to 0.0.8 (#24725)
This also fixes #24723 |
||
|
|
75ce81de95 |
chore(deps): update rust crate syn to v3 (#24684)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | major | `2` → `3` | --- ### Release Notes <details> <summary>dtolnay/syn (syn)</summary> ### [`v3.0.0`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.0) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.119...3.0.0) This release contains adjustments to the syntax tree to account for ongoing Rust language development from the 3 years since syn 2.0.0 and to anticipate some in-flight Rust language RFCs. These include: default values in fields, pinned type sugar, raw lifetimes, generator blocks and functions, unnamed enum variants, attributes in tuple types and tuple patterns, named arguments in parenthesized generic argument lists, lightweight clones, const traits, const function pointers, mutability restricted fields, supertrait auto implementation, final associated functions, trait implementability restrictions, const blocks in path arguments, item-level const blocks, return type notation, never patterns, function delegation, mutable by-reference bindings, in-place initialization, field projections, explicitly dyn-compatible traits, view types, file-level frontmatter, generic const arguments, guard patterns, lazy type aliases, explicitly safe foreign items, super let, unsafe fields, pattern types, heterogeneous try-blocks, function contracts, async function trait bounds, static closure coroutine syntax, unsafe binder types, move expressions, for-await loops, and postfix keywords. <br> <p align="center"><a href="https://docs.rs/syn/3/syn">[API documentation for 3.0]</a></p> ### Breaking changes #### Modifiers To reserve more room for language evolution, there are 10 new non-exhaustive structs in the syntax tree having the following commonality: - Name ending in `Modifiers`. {`BlockModifiers`, `ClosureModifiers`, `ConstModifiers`, `FieldModifiers`, `FnModifiers`, `ImplModifiers`, `LocalModifiers`, `TraitBoundModifiers`, `TraitModifiers`, `TypeModifiers`} - Each implements `Default`. The default value is guaranteed to comprise no tokens. - Non-exhaustive. Can only be instantiated by Syn's parser or by creating and then mutating `▁▁Modifiers::default()`. - Does not implement `Parse`. When parsing, they are parsed by the enclosing syntax tree node. - Does not implement `ToTokens`. In some cases the syntax that these nodes might hold in the future is not necessarily contiguous tokens. - Provides `.require_empty() -> Result<()>` which returns a meaningfully spanned error if the modifiers are different from the empty default. This enables a caller to reject syntax it does not recognize without knowing what that syntax may be. #### Types - `Type::BareFn` has been renamed to `Type::FnPtr` to mirror the compiler's terminology. Together with this, `BareVariadic` is renamed to `FnPtrVariadic`. - The mutually exclusive `const_token` and `mutability` fields of `Type::Ptr` have been unified into an enum of type `PointerMutability`, which was already previously used by `Expr::RawAddr`. - Every `Type` variant now holds attributes, which can represent the attributes of element types inside a tuple type, or attributes for a function return type. - `BareFnArg` is renamed to `NamedArg` and is used in `ParenthesizedGenericArguments`, in addition to the existing use in `Type::FnPtr`. #### Expressions - In `Expr::Closure`, the fields `or1_token` and `or2_token` have been renamed to `inputs_begin` and `inputs_end` to indicate the beginning and ending `|` token of the closure inputs. #### Statements - Attributes are now preserved on all expression kinds in statement position. Previously, parsing would silently lose attributes on some expression statements without a dedicated Expr variant, such as tail-call expressions. #### Patterns - The `guard` field of `Arm` is replaced by a new `Pat::Guard` variant held in the arm's `pat`. #### Items - The `unsafety` field of `Signature`, which represented the presence or absence of `unsafe`, is replaced by a 3-way `Safety` enum which may be safe, unsafe, or default. `ForeignItem::Static` also gets a `Safety`. - Some of the fields of `Receiver` have been split to a non-exhaustive `ReceiverKind` enum to create room for proposed new kinds of method receivers, such as pinned. - Type aliases now hold a `WhereClausePlacement` to distinguish between early placement (which is the default for item-level type aliases and is *deprecated* in associated type aliases) and late placement (which is the default for associated type aliases and is *unstable* in item-level type aliases). Parsing and printing a syntax tree will now preserve the where-clause placement rather than rewriting it to the default placement for the item kind. #### Generics - `WherePredicate::Lifetime` and `WherePredicate::Type` have a new field holding the attributes on the where-predicates. - `GenericParam::Type` and `GenericParam::Const` now match the rest of the syntax tree in holding their optional default using a single Option of tuple, rather than a pair of Option. #### Literals - The `Parse` implementation of `Lifetime` no longer permits keyword lifetimes, matching a change in Rust 1.81 to deny such lifetimes pre-expansion. `Lifetime::parse_any` may be used to parse lifetimes permissive of keywords. - `LitInt` and `LitFloat` no longer implement `From<proc_macro2::Literal>`. Use `Lit::new(literal)` and then match `Lit::Int` or `Lit::Float`. - The `StrStyle` enum was unused and has been deleted. #### More - `File` contains a new `Option<Frontmatter>`, but does not yet parse frontmatter in `syn::parse_file` until that language feature progresses closer to stabilization. - Some enums no longer provide `From` impls. Construct the variant by name instead, such as `Expr::Array(e)` in place of `e.into()`. - The `pop` method of `Punctuated<T, P>` now returns `Option<T>` discarding the trailing punctuation if any, rather than `Option<Pair<T, P>>`. A new method `pop_pair` provides the old behavior. - Syntax tree traversal (`visit`, `visit_mut`, `fold`) no longer provides a method for processing `Span`. This was already incompletely supported and never walked most of the spans in a syntax tree. - The `Speculative` and `AnyDelimiter` traits have been sealed and cannot be implemented for types outside of Syn's `ParseStream`. </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
da927afaa5 |
chore(deps): update rust crates (#24681)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://redirect.github.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.103` → `1.0.104` | | [bitflags](https://redirect.github.com/bitflags/bitflags) | workspace.dependencies | patch | `2.13.0` → `2.13.1` | | [compact_str](https://redirect.github.com/ParkMyCar/compact_str) | workspace.dependencies | minor | `0.9.1` → `0.10.0` | | [futures](https://rust-lang.github.io/futures-rs) ([source](https://redirect.github.com/rust-lang/futures-rs)) | workspace.dependencies | patch | `0.3.32` → `0.3.33` | | [ignore](https://redirect.github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://redirect.github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | workspace.dependencies | patch | `0.4.28` → `0.4.30` | | [prettyplease](https://redirect.github.com/dtolnay/prettyplease) | workspace.dependencies | minor | `0.2.37` → `0.3.0` | | [proc-macro2](https://redirect.github.com/dtolnay/proc-macro2) | workspace.dependencies | patch | `1.0.106` → `1.0.107` | | [quote](https://redirect.github.com/dtolnay/quote) | workspace.dependencies | patch | `1.0.46` → `1.0.47` | | [self_cell](https://redirect.github.com/Voultapher/self_cell) | workspace.dependencies | minor | `1.2.2` → `1.3.0` | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | workspace.dependencies | patch | `1.0.228` → `1.0.229` | | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.118` → `2.0.119` | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | workspace.dependencies | minor | `1.52.3` → `1.53.0` | | [toml](https://redirect.github.com/toml-rs/toml) | workspace.dependencies | patch | `1.1.2+spec-1.1.0` → `1.1.3` | --- ### Release Notes <details> <summary>dtolnay/anyhow (anyhow)</summary> ### [`v1.0.104`](https://redirect.github.com/dtolnay/anyhow/releases/tag/1.0.104) [Compare Source](https://redirect.github.com/dtolnay/anyhow/compare/1.0.103...1.0.104) - Update `syn` dev-dependency to version 3 </details> <details> <summary>bitflags/bitflags (bitflags)</summary> ### [`v2.13.1`](https://redirect.github.com/bitflags/bitflags/blob/HEAD/CHANGELOG.md#2131) [Compare Source](https://redirect.github.com/bitflags/bitflags/compare/2.13.0...2.13.1) #### What's Changed - Lower the LLVM IR output of the generated output by [@​bolshoytoster](https://redirect.github.com/bolshoytoster) in [#​492](https://redirect.github.com/bitflags/bitflags/pull/492) #### New Contributors - [@​bolshoytoster](https://redirect.github.com/bolshoytoster) made their first contribution in [#​492](https://redirect.github.com/bitflags/bitflags/pull/492) **Full Changelog**: <https://github.com/bitflags/bitflags/compare/2.13.0...2.13.1> </details> <details> <summary>ParkMyCar/compact_str (compact_str)</summary> ### [`v0.10.0`](https://redirect.github.com/ParkMyCar/compact_str/blob/HEAD/CHANGELOG.md#0100) [Compare Source](https://redirect.github.com/ParkMyCar/compact_str/compare/v0.9.1...v0.10.0) ##### July 12, 2026 #### Changes - Minimum supported Rust version (MSRV) was bumped to `v1.71`. - The `Error` trait impls once again require the `std` feature. This reverts the (unreleased) no-std `core::error::Error` support from [#​443](https://redirect.github.com/ParkMyCar/compact_str/pull/443), which required Rust `v1.81`, it can return once the MSRV reaches `v1.81`. - Added support for the [`garde`](https://crates.io/crates/garde) validation crate under an optional feature, implementing its string rule traits for `CompactString`. - Implemented in [`feat: add garde validation support`](https://redirect.github.com/ParkMyCar/compact_str/pull/471). - Added support for the [`schemars`](https://crates.io/crates/schemars) crate under an optional feature, implementing `JsonSchema` for `CompactString`. Every method delegates to `String`'s impl, so the generated schema is identical to a `String`'s. - Implemented in [`feat: support schemars`](https://redirect.github.com/ParkMyCar/compact_str/pull/454). - Added support for the [`valuable`](https://crates.io/crates/valuable) crate under an optional feature, implementing the `Valuable` trait for `CompactString` so it presents as a `Value::String`. - Implemented in [`Add impl Valuable`](https://redirect.github.com/ParkMyCar/compact_str/pull/451). - Added a `pyo3` feature which implements [`FromPyObject`](https://docs.rs/pyo3/0.29/pyo3/conversion/trait.FromPyObject.html) and [`IntoPyObject`](https://docs.rs/pyo3/0.29/pyo3/conversion/trait.IntoPyObject.html) for `CompactString`, so it can be used seamlessly with [`pyo3`](https://crates.io/crates/pyo3) v0.29. - Implemented in [`feat: add pyo3 feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/446). - Added support for the [`defmt`](https://crates.io/crates/defmt) crate under an optional feature, implementing `defmt::Format` for `CompactString`. - Implemented in [`feat: Add support for defmt`](https://redirect.github.com/ParkMyCar/compact_str/pull/438). - Added a `bevy-reflect` feature which implements [`bevy_reflect`](https://crates.io/crates/bevy_reflect)'s reflection traits for `CompactString` (as an opaque type). - Implemented in [`feat: Add bevy-reflect feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/439). - Added a `utoipa` feature which implements [`utoipa`](https://crates.io/crates/utoipa)'s `PartialSchema` and `ToSchema` traits for `CompactString`. - Implemented in [`fix sqlx type impl, add utoipa feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/442) and [`feat: fixup the utoipa feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/445). - Removed `#[must_use]` from the `Drain` iterator. - Implemented in [`fix: remove #[must_use] from Drain`](https://redirect.github.com/ParkMyCar/compact_str/pull/486). - Added [Kani](https://redirect.github.com/model-checking/kani) proof harnesses to formally verify the crate's unsafe code. - Implemented in [`feat: add kani proof harnesses to verify unsafe code`](https://redirect.github.com/ParkMyCar/compact_str/pull/480). - Bump the [`sqlx`](https://crates.io/crates/sqlx) dependency to `v0.9`. Enabling the `sqlx` feature now requires Rust `v1.94`. - Implemented in [`deps: bump sqlx to 0.9`](https://redirect.github.com/ParkMyCar/compact_str/pull/474). - Bump the [`bevy_reflect`](https://crates.io/crates/bevy_reflect) dependency to `v0.19`. - Implemented in [`deps: update optional deps to latest`](https://redirect.github.com/ParkMyCar/compact_str/pull/490). - Bump the [`markup`](https://crates.io/crates/markup) dependency to `v0.16`. - Implemented in [`deps: update optional deps to latest`](https://redirect.github.com/ParkMyCar/compact_str/pull/490). #### Bug Fixes - Fixed possible undefined behavior when reallocating a heap-allocated `CompactString`. - Implemented in [`fix: possible undefined behavior with realloc in a HeapString`](https://redirect.github.com/ParkMyCar/compact_str/pull/459). - Fixed `CompactString::retain` to avoid briefly creating references to invalid UTF-8. - Implemented in [`Avoid invalid UTF-8 references in retain`](https://redirect.github.com/ParkMyCar/compact_str/pull/469). - Fixed `CompactString::as_mut_bytes` exposing uninitialized spare capacity through a `&mut [u8]`; heap spare capacity is now zero-initialized before it's returned. - Implemented in [`fix: avoid exposing uninitialized spare capacity`](https://redirect.github.com/ParkMyCar/compact_str/pull/468). #### Performance - Reuse an owned `String`'s existing allocation in `CompactString::new`. - Implemented in [`perf: reuse owned String in CompactString::new`](https://redirect.github.com/ParkMyCar/compact_str/pull/460). - Specialize `ToCompactString` for `str`. - Implemented in [`perf: specialize ToCompactString for str`](https://redirect.github.com/ParkMyCar/compact_str/pull/461). - Pass heap fields by value when dropping a `CompactString` instead of `&mut Repr`. - Implemented in [`perf: Drop passes heap fields by-value instead of &mut Repr`](https://redirect.github.com/ParkMyCar/compact_str/pull/462). - Skip the `Result` on the hot inline construction path with `Repr::new_panic`. - Implemented in [`perf: add Repr::new_panic to skip Result on the hot inline path`](https://redirect.github.com/ParkMyCar/compact_str/pull/463). - Assert internal `Repr` invariants so the compiler can fold dead error-handling branches on construction. - Implemented in [`perf: assert Repr invariants to fold dead Err arms on construction`](https://redirect.github.com/ParkMyCar/compact_str/pull/467). - Speed up append, integer formatting, and inline creation. - Implemented in [`perf: speed up append, integer formatting, and inline creation`](https://redirect.github.com/ParkMyCar/compact_str/pull/479). - Bulk-copy valid runs in `from_utf8_lossy` instead of copying byte-by-byte. - Implemented in [`perf: bulk-copy valid runs in from_utf8_lossy`](https://redirect.github.com/ParkMyCar/compact_str/pull/484). - Specialize memory copies for small/medium strings to avoid calling `memcpy`. Keep heap construction out-of-line, and move the OOM panic off the hot construction path to keep generated assembly lean. - Implemented in [`perf: several small improvements`](https://redirect.github.com/ParkMyCar/compact_str/pull/488). - Replaced the `ryu` dependency with [`zmij`](https://crates.io/crates/zmij) for float formatting. - Implemented in [`deps: replace ryu with zmij for float formatting`](https://redirect.github.com/ParkMyCar/compact_str/pull/485). </details> <details> <summary>rust-lang/futures-rs (futures)</summary> ### [`v0.3.33`](https://redirect.github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0333---2026-07-18) [Compare Source](https://redirect.github.com/rust-lang/futures-rs/compare/0.3.32...0.3.33) - Fix `ReadLine`'s soundness issue regarding to exception safety. ([#​3020](https://redirect.github.com/rust-lang/futures-rs/issues/3020)) - Fix unsound `Send` impl for `IterPinRef` and `Iter`. ([#​3003](https://redirect.github.com/rust-lang/futures-rs/issues/3003)) - Fix stacked borrows violation in `compat01as03` implementation. ([#​3012](https://redirect.github.com/rust-lang/futures-rs/issues/3012)) - Fix memory leak in `FuturesUnordered::IntoIter`. ([#​3005](https://redirect.github.com/rust-lang/futures-rs/issues/3005)) - Add `portable-atomic-alloc` feature and use it in `FuturesUnordered`. ([#​3007](https://redirect.github.com/rust-lang/futures-rs/issues/3007)) - Re-export `alloc::task::Wake`. ([#​3010](https://redirect.github.com/rust-lang/futures-rs/issues/3010)) - Update `spin` to 0.12. ([#​3014](https://redirect.github.com/rust-lang/futures-rs/issues/3014)) </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.30`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) ### [`v0.4.29`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) </details> <details> <summary>dtolnay/prettyplease (prettyplease)</summary> ### [`v0.3.0`](https://redirect.github.com/dtolnay/prettyplease/releases/tag/0.3.0) [Compare Source](https://redirect.github.com/dtolnay/prettyplease/compare/0.2.37...0.3.0) - Update to syn 3 (release notes: <https://github.com/dtolnay/syn/releases/tag/3.0.0>) </details> <details> <summary>dtolnay/proc-macro2 (proc-macro2)</summary> ### [`v1.0.107`](https://redirect.github.com/dtolnay/proc-macro2/releases/tag/1.0.107) [Compare Source](https://redirect.github.com/dtolnay/proc-macro2/compare/1.0.106...1.0.107) - Documentation improvements </details> <details> <summary>dtolnay/quote (quote)</summary> ### [`v1.0.47`](https://redirect.github.com/dtolnay/quote/releases/tag/1.0.47) [Compare Source](https://redirect.github.com/dtolnay/quote/compare/1.0.46...1.0.47) - Documentation improvements </details> <details> <summary>Voultapher/self_cell (self_cell)</summary> ### [`v1.3.0`](https://redirect.github.com/Voultapher/self_cell/releases/tag/v1.3.0): Version 1.3.0 [Compare Source](https://redirect.github.com/Voultapher/self_cell/compare/v1.2.2...v1.3.0) - Async `self_cell` construction is now `Send`, this makes using it with tokio easier. This comes at no additional performance cost. See [#​74](https://redirect.github.com/Voultapher/self_cell/issues/74) for more details. - Fixed some typos in the docs. </details> <details> <summary>serde-rs/serde (serde)</summary> ### [`v1.0.229`](https://redirect.github.com/serde-rs/serde/releases/tag/v1.0.229) [Compare Source](https://redirect.github.com/serde-rs/serde/compare/v1.0.228...v1.0.229) - Update to syn 3 </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.119`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.119) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.118...2.0.119) - Preserve attributes on tail-call expressions in statement position ([#​1994](https://redirect.github.com/dtolnay/syn/issues/1994)) - Parse field-representing types builtin in type position ([#​1996](https://redirect.github.com/dtolnay/syn/issues/1996)) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.53.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.53.0): Tokio v1.53.0 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.4...tokio-1.53.0) ### 1.53.0 (July 17th, 2026) ##### Added - fs: implement `From<OwnedFd>` and `From<OwnedHandle>` for `File` ([#​8266]) - metrics: add task schedule latency metric ([#​7986]) - net: add `SocketAddr` methods to Unix sockets ([#​8144]) ##### Changed - io: add `#[inline]` to IO trait impls for in-memory types ([#​8242]) - net: implement UCred::pid on FreeBSD ([#​8086]) - net: support Nuttx target os ([#​8259]) - signal: refactor global variables on Windows ([#​8231]) - sync: `mpsc::{Receiver,UnboundedReceiver}` now drops waker on drop, even if there are still senders ([#​8095]) - taskdump: support taskdumps on s390x ([#​8192]) - time: add `#[track_caller]` to `timeout_at()` ([#​8077]) - time: consolidate mutex locks on spurious poll ([#​8124]) - time: defer waker clone on spurious poll ([#​8107]) - time: move lazy-registration state into `Sleep` ([#​8132]) - tracing: remove unnecessary span clone ([#​8126]) ##### Fixed - io: do not treat zero-length reads as EOF in `Chain` ([#​8251]) - net: use getpeereid for QNX peer credentials ([#​8270]) - runtime: avoid illegal state in `FastRand` ([#​8078]) - sync: wake mpsc receiver when a queued `reserve[_many]` returns permits ([#​8260]) - taskdump: skip double wake on `Trace::capture`/`Trace::trace_with` ([#​8043]) - time: avoid stack overflow in runtime constructor ([#​8093]) - time (alt timer): ensure timers stay in the same runtime after `.reset()` ([#​8169]) ##### IO uring (unstable) - fs: use io-uring for `fs::try_exists` ([#​8080]) - fs: use io-uring for renaming files ([#​7800]) - rt: flush io-uring CQE in case of CQE overflow ([#​8277]) ##### Documented - docs: clarify cancel safety wording ([#​8181]) - fs: clarify `create_dir_all` succeeds if path exists ([#​8149]) - io: add warning about stdout reordering with multiple handles ([#​8276]) - net: document pipe `try_read*`/`try_write*` readiness behavior ([#​8032]) - runtime: document interaction with fork() ([#​8202]) - sync: clarify broadcast lagging semantics ([#​8239]) - sync: document memory ordering guarantees for Semaphore ([#​8119]) - task: explain why `yield_now` defers its waker ([#​8254]) - time: add panic docs to `timeout_at()` ([#​8077]) - time: fix reversed poll order in timeout doc ([#​8214]) [#​7800]: https://redirect.github.com/tokio-rs/tokio/pull/7800 [#​7986]: https://redirect.github.com/tokio-rs/tokio/pull/7986 [#​8032]: https://redirect.github.com/tokio-rs/tokio/pull/8032 [#​8043]: https://redirect.github.com/tokio-rs/tokio/pull/8043 [#​8077]: https://redirect.github.com/tokio-rs/tokio/pull/8077 [#​8078]: https://redirect.github.com/tokio-rs/tokio/pull/8078 [#​8080]: https://redirect.github.com/tokio-rs/tokio/pull/8080 [#​8086]: https://redirect.github.com/tokio-rs/tokio/pull/8086 [#​8093]: https://redirect.github.com/tokio-rs/tokio/pull/8093 [#​8095]: https://redirect.github.com/tokio-rs/tokio/pull/8095 [#​8107]: https://redirect.github.com/tokio-rs/tokio/pull/8107 [#​8119]: https://redirect.github.com/tokio-rs/tokio/pull/8119 [#​8124]: https://redirect.github.com/tokio-rs/tokio/pull/8124 [#​8126]: https://redirect.github.com/tokio-rs/tokio/pull/8126 [#​8132]: https://redirect.github.com/tokio-rs/tokio/pull/8132 [#​8144]: https://redirect.github.com/tokio-rs/tokio/pull/8144 [#​8149]: https://redirect.github.com/tokio-rs/tokio/pull/8149 [#​8169]: https://redirect.github.com/tokio-rs/tokio/pull/8169 [#​8181]: https://redirect.github.com/tokio-rs/tokio/pull/8181 [#​8192]: https://redirect.github.com/tokio-rs/tokio/pull/8192 [#​8193]: https://redirect.github.com/tokio-rs/tokio/pull/8193 [#​8202]: https://redirect.github.com/tokio-rs/tokio/pull/8202 [#​8214]: https://redirect.github.com/tokio-rs/tokio/pull/8214 [#​8231]: https://redirect.github.com/tokio-rs/tokio/pull/8231 [#​8239]: https://redirect.github.com/tokio-rs/tokio/pull/8239 [#​8242]: https://redirect.github.com/tokio-rs/tokio/pull/8242 [#​8251]: https://redirect.github.com/tokio-rs/tokio/pull/8251 [#​8254]: https://redirect.github.com/tokio-rs/tokio/pull/8254 [#​8259]: https://redirect.github.com/tokio-rs/tokio/pull/8259 [#​8260]: https://redirect.github.com/tokio-rs/tokio/pull/8260 [#​8266]: https://redirect.github.com/tokio-rs/tokio/pull/8266 [#​8270]: https://redirect.github.com/tokio-rs/tokio/pull/8270 [#​8276]: https://redirect.github.com/tokio-rs/tokio/pull/8276 [#​8277]: https://redirect.github.com/tokio-rs/tokio/pull/8277 ### [`v1.52.4`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.52.4): Tokio v1.52.4 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.3...tokio-1.52.4) ### 1.52.4 (July 16th, 2026) ##### Fixed - runtime: don't skip the driver when `before_park` schedules work ([#​8222]) ##### Fixed (unstable) - taskdump: remove crate disambiguators from output ([#​8264]) [#​8264]: https://redirect.github.com/tokio-rs/tokio/pull/8264 [#​8222]: https://redirect.github.com/tokio-rs/tokio/pull/8222 </details> <details> <summary>toml-rs/toml (toml)</summary> ### [`v1.1.3`](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
582ea7547f |
refactor(napi): don't force tokio_rt on the napi binding crates (#24475)
## What
Stop forcing `tokio_rt` on oxc's napi binding crates.
`tokio_rt` was enabled as a blanket default on the workspace `napi` dependency, so **every** napi crate pulled in tokio. But the napi binding crates don't use a tokio runtime:
- no `#[napi] async fn` exports and no `tokio::` usage anywhere in the napi crates
- the only async surface is `oxc_parser_napi`'s `parse_async`, which is a libuv-backed `AsyncTask` / `Task` (napi4), **not** a tokio future
## Change (2 lines)
- workspace `Cargo.toml`: `napi = { version = "3", features = ["tokio_rt"] }` → `napi = { version = "3" }` — napi's own `default` already provides `napi4` + `dyn-symbols`, which covers `AsyncTask`
- `napi/parser/Cargo.toml`: drop the now-redundant `features = ["async"]`
## Effect
- oxc's napi crates (`oxc_napi`, `oxc_parser_napi`, `oxc_transform_napi`, `oxc_minify_napi`) no longer link tokio → smaller npm binaries
- downstream consumers that share the same `napi` (e.g. a bundler wiring napi's pluggable async-runtime SPI) are no longer forced to pull tokio in via Cargo feature unification
- crates that genuinely want napi's tokio async (`oxlint`, `oxfmt`) keep opting in explicitly via `features = ["async"]`
## Verification
- `cargo check --workspace` — green
- `cargo tree -i tokio` shows tokio gone from all four napi crates' normal dependency trees; `napi` now resolves to just `default` (`napi4` + `dyn-symbols`)
- CI validates the JS-side async parse (`parse_async`) tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01T34fMrYCf2V13Mg8BKmnda
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> Dependency-feature-only change with explicit opt-in preserved for crates that need napi async; async parse paths use `Task`/`AsyncTask`, not Tokio futures.
>
> **Overview**
> Removes **`tokio_rt`** from the workspace **`napi`** dependency so NAPI binding crates no longer inherit Tokio through Cargo feature unification. **`napi/parser`** also drops the redundant **`features = ["async"]`** on its **`napi`** line.
>
> Published NAPI crates (`oxc_parser_napi`, `oxc_transform_napi`, etc.) should link a smaller native addon while **`parse`** / **`parse_raw`** keep using **`AsyncTask`** / **`Task`** (napi4), not napi’s Tokio async runtime. Crates that need napi async (**`oxlint`**, **`oxfmt`**, playground) still enable **`features = ["async"]`** locally.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 48c63d442bcc2ffa8b88f5aa6f777137bebe8651. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
|
||
|
|
8e0ed2ebb9 |
release(crates): oxc v0.140.0 (#24453)
### 🚀 Features - |
||
|
|
3a7fe74366 |
feat(formatter_css): update oxc-css-parser to 0.0.7 (#24434)
- Shadow parts: `::part()` - Scroll driven animations: `<timeline-range-name>` |
||
|
|
652f056f6e | chore(oxfmt): update sort-package-json to 0.0.14 (#24431) | ||
|
|
6e2472da6a | chore(oxfmt): update oxc-toml to 0.14.5 (#24427) | ||
|
|
58fb253362 |
chore(deps): update rust crate oxc-graphql-parser to 0.0.7 (#24429)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-graphql-parser](https://redirect.github.com/oxc-project/oxc-graphql-parser) | workspace.dependencies | patch | `0.0.6` → `0.0.7` | --- ### Release Notes <details> <summary>oxc-project/oxc-graphql-parser (oxc-graphql-parser)</summary> ### [`v0.0.7`](https://redirect.github.com/oxc-project/oxc-graphql-parser/releases/tag/oxc-graphql-parser-v0.0.7) [Compare Source](https://redirect.github.com/oxc-project/oxc-graphql-parser/compare/oxc-graphql-parser-v0.0.6...oxc-graphql-parser-v0.0.7) ##### Fixed - string values ending in an escaped quote lose the quote ([#​53](https://redirect.github.com/oxc-project/oxc-graphql-parser/pull/53)) - selection set loop spins forever on invalid selection start ([#​52](https://redirect.github.com/oxc-project/oxc-graphql-parser/pull/52)) ##### Other - extract definition\_start helper for description-aware spans ([#​54](https://redirect.github.com/oxc-project/oxc-graphql-parser/pull/54)) - use Peekable::next\_if\_eq for CRLF normalization ([#​50](https://redirect.github.com/oxc-project/oxc-graphql-parser/pull/50)) - hint cold error paths with std::hint::cold\_path ([#​49](https://redirect.github.com/oxc-project/oxc-graphql-parser/pull/49)) - lower MSRV to Rust 1.95.0 ([#​48](https://redirect.github.com/oxc-project/oxc-graphql-parser/pull/48)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
cadbfee9a5 |
refactor(react_compiler): remove dead code (#24426)
Removes all compiler-flagged dead code from `oxc_react_compiler`.
## Removed
- **Superseded functions** (`propagate_scope_dependencies_hir`): `collect_hoistable_property_loads`, `collect_hoistable_property_loads_impl`, `key_by_scope_id` — the live pipeline uses the restructured `collect_hoistable_and_propagate` instead.
- **Unused methods/wrappers**: `kind_opt`, `mutate`, `define_context`.
- **Unused fields** (removed with their construction sites): `PropertyPathNode::{parent, root}`, `DependencyCollectionContext::temporaries_used_outside_scope` (cascaded cleanly through `collect_dependencies`), `JsxInstrInfo::instr_id`, `ControlFlowTarget::Loop::owns_block`, `OxcContext::fn_name`, `StartMemoInfo::span`, `Callbacks::memo_locals`.
- **Unused enum variant**: `MutationKind::None` (the `Ord` ordering of the remaining variants is preserved).
- **Dormant scaffolding**: `TransformedValue::Replace` — collapsed the base traversal's replace path down to direct `visit_value` calls (the 11 transform passes are unaffected) — and `LvalueRef::Spread` plus its codegen match arm.
- **`hmac-sha256` dependency** — orphaned once `source_file_hash` was removed; dropped from the crate and workspace manifests.
Pre-existing `#[allow(dead_code)]` markers on live-but-unread code were left intact, so the diff is purely dead-code removal. Snapshot conformance (over the upstream fixture corpus) and the transform integration tests pass unchanged.
|
||
|
|
460c293a86 |
chore(deps): update rust crates (#24411)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [handlebars](https://redirect.github.com/sunng87/handlebars-rust) | workspace.dependencies | patch | `6.4.2` → `6.4.3` | | [ignore](https://redirect.github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://redirect.github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | workspace.dependencies | patch | `0.4.27` → `0.4.28` | | [memchr](https://redirect.github.com/BurntSushi/memchr) | workspace.dependencies | patch | `2.8.2` → `2.8.3` | | [oxc-toml](https://crates.io/crates/oxc-toml) | workspace.dependencies | patch | `0.14.4` → `0.14.5` | | [saphyr](https://crates.io/crates/saphyr) | workspace.dependencies | patch | `0.0.9` → `0.0.11` | --- ### Release Notes <details> <summary>sunng87/handlebars-rust (handlebars)</summary> ### [`v6.4.3`](https://redirect.github.com/sunng87/handlebars-rust/blob/HEAD/CHANGELOG.md#643---2026-07-12) [Compare Source](https://redirect.github.com/sunng87/handlebars-rust/compare/v6.4.2...v6.4.3) - \[Fixed] Panic when using whitespace omission (`~`) on an `else if` chain tag, e.g. `{{~else if cond}}`. The leading tilde is now handled consistently with `{{~else}}` \[[#​766](https://redirect.github.com/sunng87/handlebars-rust/issues/766)] - \[Added] `preserve_json_order` feature flag that gates `serde_json`'s `preserve_order` feature. Enabled by default to keep insertion-order key iteration; disable with `default-features = false` to restore alphabetical JSON object key ordering. \[[#​767](https://redirect.github.com/sunng87/handlebars-rust/issues/767)] - \[Changed] Drop the `pprof` dev-dependency (and its `inferno` / `quick-xml` transitive deps) from benchmarks. This removes the vulnerable `quick-xml` 0.26 transitive dependency (\[[#​764](https://redirect.github.com/sunng87/handlebars-rust/issues/764)], \[[#​765](https://redirect.github.com/sunng87/handlebars-rust/issues/765)]); the upgrade was blocked upstream because `pprof` pins `inferno` 0.11. Benchmarks now use plain criterion without in-repo flamegraph generation. </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.28`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.27...ignore-0.4.28) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.27...ignore-0.4.28) </details> <details> <summary>BurntSushi/memchr (memchr)</summary> ### [`v2.8.3`](https://redirect.github.com/BurntSushi/memchr/compare/2.8.2...2.8.3) [Compare Source](https://redirect.github.com/BurntSushi/memchr/compare/2.8.2...2.8.3) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
7da0bb18a3 |
chore(deps): bump MSRV to 1.95.0 (#24359)
Bump MSRV to 1.95.0, following our +2 MSRV policy. |
||
|
|
66e1a25c0e |
chore(all): fix clippy::manual_assert_eq (#24351)
|
||
|
|
87841eebfd |
chore(all): fix clippy::useless_borrows_in_formatting (#24347)
|
||
|
|
1f8997d76a | chore(linter): fix clippy::manual_filter (#24335) | ||
|
|
0e00b91b5a |
chore(deps): update dependency rust to v1.97.0 (#24328)
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [rust](https://redirect.github.com/rust-lang/rust) | minor | `1.96.1` → `1.97.0` | --- ### Release Notes <details> <summary>rust-lang/rust (rust)</summary> ### [`v1.97.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1970-2026-07-09) [Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.96.1...1.97.0) \========================== <a id="1.97.0-Language"></a> ## Language - [Consider `Result<T, Uninhabited>` and `ControlFlow<Uninhabited, T>` to be equivalent to `T` for must use lint](https://redirect.github.com/rust-lang/rust/pull/148214) - [Add allow-by-default `dead_code_pub_in_binary` lint for unused pub items in binary crates](https://redirect.github.com/rust-lang/rust/pull/149509) - [Stabilize the `div32`, `lam-bh`, `lamcas`, `ld-seq-sa` and `scq` target features](https://redirect.github.com/rust-lang/rust/pull/154510) - [Stabilize `cfg(target_has_atomic_primitive_alignment)`](https://redirect.github.com/rust-lang/rust/pull/155006) - [Allow trailing `self` in imports in more cases](https://redirect.github.com/rust-lang/rust/pull/155137) <a id="1.97.0-Platform-Support"></a> ## Platform Support - [nvptx64-nvidia-cuda: drop support for old architectures and old ISAs](https://redirect.github.com/rust-lang/rust/pull/152443) Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support. [platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html <a id="1.97.0-Stabilized-APIs"></a> ## Stabilized APIs - [`Default for RepeatN`](https://doc.rust-lang.org/stable/std/iter/struct.RepeatN.html#impl-Default-for-RepeatN%3CA%3E) - [`Copy for ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html#impl-Copy-for-FromBytesUntilNulError) - [`Send for std::fs::File` on UEFI](https://redirect.github.com/rust-lang/rust/pull/154003) - [`<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_highest_one) - [`<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.isolate_lowest_one) - [`<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.highest_one) - [`<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.lowest_one) - [`<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.bit_width) - [`NonZero<{integer}>::isolate_highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_highest_one) - [`NonZero<{integer}>::isolate_lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.isolate_lowest_one) - [`NonZero<{integer}>::highest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.highest_one) - [`NonZero<{integer}>::lowest_one`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.lowest_one) - [`NonZero<{integer}>::bit_width`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.bit_width) These previously stable APIs are now stable in const contexts: - [`char::is_control`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_control) <a id="1.97.0-Cargo"></a> ## Cargo - [Stabilize `build.warnings` config.](https://redirect.github.com/rust-lang/cargo/pull/16796) This controls how lint warnings from local packages are treated. Useful for enforcing a warning-free build in CI, replacing `-Dwarnings`. [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildwarnings) - [Stabilize `resolver.lockfile-path` config.](https://redirect.github.com/rust-lang/cargo/pull/16694) This allows specifying the path to the lockfile to use when resolving dependencies. Useful when working with read-only source directories. [docs](https://doc.rust-lang.org/nightly/cargo/reference/config.html#resolverlockfile-path) - [cargo-clean: Error when `--target-dir` doesn't look like a Cargo target directory.](https://redirect.github.com/rust-lang/cargo/pull/16712) This prevents accidental deletion of non-target directories. - [Add `-m` shorthand for `--manifest-path`](https://redirect.github.com/rust-lang/cargo/pull/16858) - [Remove `curl` dependency from `crates-io` crate](https://redirect.github.com/rust-lang/cargo/pull/16936) <a id="1.97.0-Rustdoc"></a> ## Rustdoc - [Stabilize `--emit` flag](https://redirect.github.com/rust-lang/rust/pull/146220) - [Stabilize `--remap-path-prefix`](https://redirect.github.com/rust-lang/rust/pull/155307) <a id="1.97.0-Compatibility-Notes"></a> ## Compatibility Notes - [Emit a future-compatibility warning when relying on `f32: From<{float}>` to constrain `{float}`](https://redirect.github.com/rust-lang/rust/pull/139087) - [Rust will use the v0 symbol mangling scheme by default.](https://redirect.github.com/rust-lang/rust/pull/151994) This may cause some tools (such as debuggers or profilers, especially with old versions) to fail to demangle symbols emitted by Rust. It may also cause the formatting of text in backtraces to change. - [Prevent deref coercions in `pin!`, in order to prevent unsoundness.](https://redirect.github.com/rust-lang/rust/pull/153457) The most likely case where this might impact users is: writing `pin!(x)` where `x` has type `&mut T` will now always correctly produce a value of type `Pin<&mut &mut T>`, instead of sometimes allowing a coercion that produces a value of type `Pin<&mut T>`. This coercion was previously incorrectly allowed since Rust 1.88.0. - [Deprecate `std::char` constants and functions](https://redirect.github.com/rust-lang/rust/pull/153873) - [Warn on linker output by default](https://redirect.github.com/rust-lang/rust/pull/153968) - [Remove hidden `f64` methods which have been deprecated since 1.0](https://redirect.github.com/rust-lang/rust/pull/153975) - [report the `varargs_without_pattern` lint in deps](https://redirect.github.com/rust-lang/rust/pull/154599) - [Forbid passing generic arguments to module path segments even if the module reexports a generic enum variant](https://redirect.github.com/rust-lang/rust/pull/154971) - [Error on invalid macho `link_section` specifier](https://redirect.github.com/rust-lang/rust/pull/155065) - The encoding of certain `enum`s [have changed](https://redirect.github.com/rust-lang/rust/pull/155473). This is not a breaking change, as it only applies to `enum`s without layout guarantees, but is noted here as we've seen people impacted from having made assumptions about the layout algorithm. - [Error on `#[export_name = "..."]` where the name is empty](https://redirect.github.com/rust-lang/rust/pull/155515) - [Syntactically reject tuple index shorthands in struct patterns](https://redirect.github.com/rust-lang/rust/pull/155698) - [validate `#[link_name = "..."]` & `#[link(name = "...")]` parameters](https://redirect.github.com/rust-lang/rust/pull/155817) - On Windows, after calling `shutdown` on a socket to shut down the write side, attempting to write to the socket will now produce a `BrokenPipe` error rather than `Other`. [Map `WSAESHUTDOWN` to `io::ErrorKind::BrokenPipe`](https://redirect.github.com/rust-lang/rust/pull/156063) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron <cameron.clark@hey.com> |
||
|
|
6ab439a902 |
feat(lexer): add oxc_lexer, a unfused SIMD lexer for JS/TS/TSX (#24172)
Adds the x86_64 version of my Research `SIMD For Context Sensitive Languages`. (CPB = Cycles per byte) - Adds new create crates/oxc_lexer; Which eventually lead into an unfused parser design inside oxc_parser - Fully test262 compliant JS standalone Lexer; SIMD used has counterparts on every platform. - Performs at 2.5CPB on checker.js on my ZEN 3 CPU; or around 1.5-1.75 gbs (3.8GHz). - Across aarch64, + other platforms performance will hold which I've seen in my POCs but those targets will come later. - Supports JSX/TS options, Which don't have much impact on overall perf results. ------ The expected results for seeing this work through [including on parser side on oxc_parser] 1. P95 improvements of 80-100% over current `oxc_parser`; 12-18% of this will come from the unfused contract where JS grammar specifically loves being able to see 'ahead' into `kinds` in various places. The rest comes from the perf improvements to the lexer itself and some wins that will come inside the parser from work now done in the lexer. |
||
|
|
b1d007e5d6 |
chore(deps): update oxc-grahql-parser 0.0.6 (#24283)
I thought there might be some code changes, but there weren't, so simply a version bump. |
||
|
|
eeabc4a55f |
fix(formatter_css): bail on EOF-recovered parse errors (#24282)
Also updated the code to reflect the changes in `oxc-css-parser` 0.0.6. |
||
|
|
69b2dfc181 |
release(crates): oxc v0.139.0 (#24218)
### 🚀 Features - |
||
|
|
897d6ac29d |
chore(deps): update rust crate saphyr to 0.0.9 (#24195)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [saphyr](https://crates.io/crates/saphyr) | workspace.dependencies | patch | `0.0.6` → `0.0.9` | --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
ef33878eb8 |
chore(deps): update rust crates (#24192)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [num-bigint](https://redirect.github.com/rust-num/num-bigint) | workspace.dependencies | minor | `0.4.6` → `0.5.0` | | [rustc-hash](https://crates.io/crates/rustc-hash) | workspace.dependencies | patch | `2.1.2` → `2.1.3` | --- ### Release Notes <details> <summary>rust-num/num-bigint (num-bigint)</summary> ### [`v0.5.1`](https://redirect.github.com/rust-num/num-bigint/blob/HEAD/RELEASES.md#Release-051-2026-07-04) [Compare Source](https://redirect.github.com/rust-num/num-bigint/compare/num-bigint-0.5.0...num-bigint-0.5.1) - [Fixed a regression in the B-Z division algorithm.][348] [348]: https://redirect.github.com/rust-num/num-bigint/pull/348 **Contributors**: [@​cuviper](https://redirect.github.com/cuviper) ### [`v0.5.0`](https://redirect.github.com/rust-num/num-bigint/blob/HEAD/RELEASES.md#Release-050-2026-07-02) [Compare Source](https://redirect.github.com/rust-num/num-bigint/compare/num-bigint-0.4.8...num-bigint-0.5.0) - [Upgrade to `rand` v0.10 and/or v0.9, and split `rand_core`][338]. - The former `rand` feature is now split into multiple features, `rand_0_9`, `rand_core_0_9`, `rand_0_10`, and `rand_core_0_10`, depending on the version and feature set you need. - The `RandBigInt` extension trait is now split into `BigRng09` and `BigRng010` for each version. - The `gen_*` methods are deprecated in favor of new `random_*` methods. - This is also a [value-breaking] release, as `rand` defines it. [338]: https://redirect.github.com/rust-num/num-bigint/pull/338 [value-breaking]: https://rust-random.github.io/book/crate-reprod.html#api-breaking-value-breaking-and-semver **Contributors**: [@​bionicles](https://redirect.github.com/bionicles), [@​cuviper](https://redirect.github.com/cuviper), [@​divergentdave](https://redirect.github.com/divergentdave) ### [`v0.4.8`](https://redirect.github.com/rust-num/num-bigint/blob/HEAD/RELEASES.md#Release-048-2026-07-04) [Compare Source](https://redirect.github.com/rust-num/num-bigint/compare/num-bigint-0.4.7...num-bigint-0.4.8) - [Fixed a regression in the B-Z division algorithm.][349] [349]: https://redirect.github.com/rust-num/num-bigint/pull/349 **Contributors**: [@​cuviper](https://redirect.github.com/cuviper) ### [`v0.4.7`](https://redirect.github.com/rust-num/num-bigint/blob/HEAD/RELEASES.md#Release-047-2026-07-02) [Compare Source](https://redirect.github.com/rust-num/num-bigint/compare/num-bigint-0.4.6...num-bigint-0.4.7) - [Inline single-digit values.][307] This reduces heap allocations, and also enables `const ONE`, `const NEG_ONE`, and `const fn new_const`. - [Use divide and conquer in `to_radix_digits`,][316] also implementing the Burnikel-Ziegler algorithm to speed up large divisions in general. - [Implement `LowerBounded` for `BigUint`.][330] [307]: https://redirect.github.com/rust-num/num-bigint/pull/307 [316]: https://redirect.github.com/rust-num/num-bigint/pull/316 [330]: https://redirect.github.com/rust-num/num-bigint/pull/330 **Contributors**: [@​cp289](https://redirect.github.com/cp289), [@​cuviper](https://redirect.github.com/cuviper), [@​hkalbasi](https://redirect.github.com/hkalbasi), [@​mikem8891](https://redirect.github.com/mikem8891), [@​pRizz](https://redirect.github.com/pRizz), [@​tyilo](https://redirect.github.com/tyilo), [@​xtqqczze](https://redirect.github.com/xtqqczze) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
1e221cef0f |
refactor(type_checker): use anyhow for error handling (#24185)
## Summary
Switch `oxc_type_checker`'s CLI error handling from `Result<_, String>` to `anyhow`. The tsc-style command-line errors (TS5042/5058/5081/5112) and the tsconfig-parse errors now flow as `anyhow::Result`, and `command_line` prints the error chain and maps to `ExitCode`.
## Details
- `resolve_config_file` and `parse_config_file`: `Result<_, String>` → `anyhow::Result<_>`. `bail!` / `?` replace `format!` / `.to_string()` + the manual `Err(...)` returns.
- `tsc_compilation` → `anyhow::Result<()>` — the three `Err(message) => { eprintln!; return FAILURE }` arms collapse into `?`.
- `command_line` prints the error with `eprintln!("{err:#}")` (the whole chain, no `Error:` prefix) and maps to `ExitCode`, so stderr output, exit codes, and `main.rs` stay unchanged.
- Adds `anyhow` as a workspace dependency (new to the workspace).
## Verification
- `cargo build` / `clippy` / `fmt` clean; doctest passes; nightly `--all-features` build + doc clean.
- Error output unchanged: `-p /nope/tsconfig.json` → `The specified path does not exist: '...'.`; mixing `-p` + files → `Option 'project' cannot be mixed...`; a repo that `extends` a missing package → `Tsconfig not found @eggjs/tsconfig` — all exit 1, no `Error:` prefix. The success path prints the file list as before.
> Based on current `main` (before #24177), so it overlaps #24177's `tsc.rs` changes — to be resolved at merge.
|