feat(span)!: remove re-exports of string types from oxc_span crate#21246
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Merging this PR will not alter performance
Comparing Footnotes
|
f3c8f5a to
ed4ef53
Compare
49e7f10 to
72d693b
Compare
There was a problem hiding this comment.
Pull request overview
This PR removes the historical re-exports of oxc_str string types from the oxc_span crate and updates the codebase to import string types directly from oxc_str, aligning crate boundaries and clarifying ownership of string abstractions.
Changes:
- Remove
oxc_spanre-exports of string types and useoxc_strinternally where needed. - Update Rust source files across the workspace to import
Str/Ident/CompactStr(and helpers) fromoxc_str. - Add
oxc_strdependencies to crates that now referenceoxc_strdirectly.
Reviewed changes
Copilot reviewed 169 out of 173 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tasks/transform_checker/src/lib.rs | Import CompactStr from oxc_str. |
| tasks/transform_checker/Cargo.toml | Replace oxc_span dep with oxc_str. |
| tasks/ast_tools/src/generators/formatter/ast_nodes.rs | Import Ident from oxc_str. |
| tasks/ast_tools/src/generators/ast_builder.rs | Import Ident/Str from oxc_str. |
| tasks/ast_tools/Cargo.toml | Add oxc_str dependency. |
| napi/parser/src/raw_transfer_types.rs | Import Str/format_str from oxc_str. |
| napi/parser/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_traverse/src/context/scoping.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/src/utils/ast_builder.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/src/typescript/rewrite_extensions.rs | Import Str from oxc_str. |
| crates/oxc_transformer/src/typescript/enum.rs | Import Ident/IdentHashMap/Str from oxc_str. |
| crates/oxc_transformer/src/typescript/annotations.rs | Import Str from oxc_str. |
| crates/oxc_transformer/src/jsx/refresh.rs | Import Ident/Str from oxc_str. |
| crates/oxc_transformer/src/jsx/jsx_impl.rs | Import Ident/Str from oxc_str. |
| crates/oxc_transformer/src/jsx/display_name.rs | Import Str from oxc_str. |
| crates/oxc_transformer/src/es2022/class_properties/mod.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/src/es2022/class_properties/instance_prop_init.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/src/es2022/class_properties/constructor.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/src/es2022/class_properties/class.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/src/es2017/async_to_generator.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/src/common/module_imports.rs | Import Str from oxc_str. |
| crates/oxc_transformer/src/common/helper_loader.rs | Import Str from oxc_str. |
| crates/oxc_transformer/src/common/arrow_function_converter.rs | Import Ident from oxc_str. |
| crates/oxc_transformer/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_transformer_plugins/src/replace_global_defines.rs | Import CompactStr from oxc_str. |
| crates/oxc_transformer_plugins/src/module_runner_transform.rs | Import Ident from oxc_str and group with static_ident. |
| crates/oxc_transformer_plugins/src/inject_global_variables.rs | Import CompactStr/format_compact_str from oxc_str. |
| crates/oxc_syntax/src/module_record.rs | Import Str from oxc_str. |
| crates/oxc_syntax/src/constant_value.rs | Import CompactStr from oxc_str. |
| crates/oxc_syntax/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_span/src/lib.rs | Remove string-type re-exports; rely on oxc_str internally for impls. |
| crates/oxc_semantic/src/unresolved_stack.rs | Import Ident from oxc_str. |
| crates/oxc_semantic/src/ts_enum/eval.rs | Import CompactStr from oxc_str. |
| crates/oxc_semantic/src/scoping.rs | Import ArenaIdentHashMap/Ident from oxc_str. |
| crates/oxc_semantic/src/lib.rs | Import Str from oxc_str in tests. |
| crates/oxc_semantic/src/label.rs | Import Ident from oxc_str. |
| crates/oxc_semantic/src/is_global_reference.rs | Import Ident from oxc_str. |
| crates/oxc_semantic/src/class/table.rs | Import Ident from oxc_str. |
| crates/oxc_semantic/src/checker/typescript.rs | Import Str from oxc_str. |
| crates/oxc_semantic/src/checker/javascript.rs | Import Ident from oxc_str and use in suggestion collection. |
| crates/oxc_semantic/src/builder.rs | Import Ident/IdentHashMap from oxc_str. |
| crates/oxc_semantic/src/binder.rs | Import Ident from oxc_str. |
| crates/oxc_regular_expression/src/parser/reader/reader_impl.rs | Import Str from oxc_str. |
| crates/oxc_regular_expression/src/parser/pattern_parser/state.rs | Import Str from oxc_str. |
| crates/oxc_regular_expression/src/parser/pattern_parser/pattern_parser_impl.rs | Import Str from oxc_str. |
| crates/oxc_regular_expression/src/ast.rs | Import Str from oxc_str. |
| crates/oxc_regular_expression/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_parser/src/lexer/number.rs | Import Str/format_str from oxc_str. |
| crates/oxc_parser/src/jsx/mod.rs | Import Str from oxc_str. |
| crates/oxc_parser/src/js/statement.rs | Import Str from oxc_str. |
| crates/oxc_parser/src/js/expression.rs | Import Ident/Str from oxc_str. |
| crates/oxc_parser/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_minifier/src/traverse_context/scoping.rs | Import Ident from oxc_str. |
| crates/oxc_minifier/src/traverse_context/ecma_context.rs | Import format_str from oxc_str. |
| crates/oxc_minifier/src/state.rs | Import Str from oxc_str. |
| crates/oxc_minifier/src/lib.rs | Import CompactStr from oxc_str. |
| crates/oxc_minifier/src/keep_var.rs | Import Str from oxc_str. |
| crates/oxc_mangler/src/lib.rs | Import CompactStr/Ident/Str from oxc_str. |
| crates/oxc_mangler/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_linter/src/utils/jest.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/utils/express.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/service/runtime.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/vue/max_props.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/vitest/require_mock_type_parameters.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/vitest/prefer_importing_vitest_globals.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/vitest/prefer_called_exactly_once_with.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/vitest/consistent_each_for.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/unicorn/prefer_string_replace_all.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/unicorn/no_invalid_fetch_options.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/unicorn/catch_error_name.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/typescript/parameter_properties.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/rules/typescript/no_unnecessary_parameter_property_assignment.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/rules/typescript/no_this_alias.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/typescript/no_require_imports.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/typescript/explicit_module_boundary_types.rs | Import CompactStr/Ident from oxc_str. |
| crates/oxc_linter/src/rules/typescript/explicit_function_return_type.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/typescript/class_literal_property_style.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/rules/typescript/adjacent_overload_signatures.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/style_prop_object.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/no_danger_with_children.rs | Import Ident from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_props_no_spreading.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_props_no_spread_multi.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_pascal_case.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_no_target_blank.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_no_script_url.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_no_duplicate_props.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_handler_names.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_filename_extension.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/jsx_boolean_value.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/forbid_elements.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/forbid_dom_props.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/react/exhaustive_deps.rs | Import Str from oxc_str and update Str::as_str call sites. |
| crates/oxc_linter/src/rules/react/display_name.rs | Import CompactStr from oxc_str and update CompactStr::as_str call site. |
| crates/oxc_linter/src/rules/promise/spec_only.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/promise/no_callback_in_promise.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/promise/catch_or_return.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/oxc/no_async_endpoint_handlers.rs | Import CompactStr/Str from oxc_str. |
| crates/oxc_linter/src/rules/node/no_process_env.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/no_static_element_interactions.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/no_noninteractive_tabindex.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/mouse_events_have_key_events.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/label_has_associated_control.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/img_redundant_alt.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/heading_has_content.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/autocomplete_valid.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/aria_proptypes.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/anchor_is_valid.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/anchor_ambiguous_text.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jsx_a11y/alt_text.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/valid_title.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/valid_expect_in_promise.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/require_hook.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/prefer_mock_promise_shorthand.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/rules/jest/prefer_lowercase_title/mod.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/no_standalone_expect/mod.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/no_large_snapshots.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/no_hooks.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/jest/expect_expect.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/import/no_unassigned_import.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/import/no_nodejs_modules.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/import/no_namespace.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/import/no_cycle.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/import/export.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_useless_computed_key.rs | Import Str from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_unused_vars/ignored.rs | Import Str from oxc_str in tests. |
| crates/oxc_linter/src/rules/eslint/no_unused_vars/fixers/fix_vars.rs | Import CompactStr/Ident from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_unused_vars/fixers/fix_symbol.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_shadow/options.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_restricted_imports.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_implicit_coercion.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_global_assign.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_extend_native.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_duplicate_imports.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_console.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_bitwise.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/no_alert.rs | Import Ident from oxc_str. |
| crates/oxc_linter/src/rules/eslint/new_cap.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/rules/eslint/func_names.rs | Import Ident from oxc_str. |
| crates/oxc_linter/src/rules/eslint/class_methods_use_this.rs | Import CompactStr from oxc_str and adjust imports ordering. |
| crates/oxc_linter/src/rules/eslint/block_scoped_var.rs | Import Ident from oxc_str. |
| crates/oxc_linter/src/module_record.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/module_graph_visitor.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/config/settings/react.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/config/settings/mod.rs | Import CompactStr from oxc_str in tests. |
| crates/oxc_linter/src/config/settings/jsx_a11y.rs | Import CompactStr from oxc_str. |
| crates/oxc_linter/src/config/mod.rs | Import CompactStr from oxc_str in tests. |
| crates/oxc_linter/src/config/config_builder.rs | Import CompactStr/format_compact_str from oxc_str. |
| crates/oxc_isolated_declarations/src/scope.rs | Import Str from oxc_str. |
| crates/oxc_isolated_declarations/src/return_type.rs | Import Str from oxc_str. |
| crates/oxc_isolated_declarations/src/module.rs | Import Str from oxc_str. |
| crates/oxc_isolated_declarations/src/lib.rs | Import IdentHashSet/Str from oxc_str. |
| crates/oxc_isolated_declarations/src/enum.rs | Import Str from oxc_str. |
| crates/oxc_isolated_declarations/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_formatter/src/ast_nodes/generated/ast_nodes.rs | Import Ident from oxc_str. |
| crates/oxc_formatter/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_codegen/src/lib.rs | Import CompactStr from oxc_str. |
| crates/oxc_codegen/Cargo.toml | Add oxc_str dependency. |
| crates/oxc_ast/src/generated/ast_builder.rs | Import Ident/Str from oxc_str. |
| crates/oxc_ast/src/ast/ts.rs | Import Str from oxc_str. |
| crates/oxc_ast/src/ast/mod.rs | Re-export Str from oxc_str instead of oxc_span. |
| crates/oxc_ast/src/ast/literal.rs | Import Str from oxc_str. |
| crates/oxc_ast/src/ast/jsx.rs | Import Str from oxc_str. |
| crates/oxc_ast/src/ast/js.rs | Import Ident/Str from oxc_str. |
| crates/oxc_ast/src/ast_kind_impl.rs | Import Ident/Str from oxc_str. |
| crates/oxc_ast/src/ast_impl/ts.rs | Import Str from oxc_str. |
| crates/oxc_ast/src/ast_impl/jsx.rs | Import Str from oxc_str. |
| crates/oxc_ast/src/ast_impl/js.rs | Import Ident/Str from oxc_str. |
| crates/oxc_ast/src/ast_builder_impl.rs | Import Ident/Str from oxc_str. |
| crates/oxc_ast/Cargo.toml | Add oxc_str dependency. |
| Cargo.lock | Lockfile updates for added oxc_str deps. |
| apps/oxlint/src/output_formatter/json.rs | Import CompactStr from oxc_str. |
| apps/oxlint/Cargo.toml | Add oxc_str dependency. |
| .github/generated/ast_changes_watch_list.yml | Include crates/oxc_str in AST-change watch list. |
ed4ef53 to
14079f3
Compare
72d693b to
e21a993
Compare
Merge activity
|
…21246) For historical reasons, `oxc_span` crate was re-exporting string types which now live in `oxc_str` crate. Remove these re-exports, and import these types directly from `oxc_str`. Main motivation is just that it makes sense, but it should also have a minor positive effect on compile times - `oxc_span` and `oxc_str` crates can now be compiled in parallel.
14079f3 to
c4aedfa
Compare
e21a993 to
382958a
Compare
### 💥 BREAKING CHANGES - 36cdc31 str: [**BREAKING**] Remove identity `FromIn` impl for `Ident` (#21251) (overlookmotel) - 382958a span: [**BREAKING**] Remove re-exports of string types from `oxc_span` crate (#21246) (overlookmotel) - c4aedfa str: [**BREAKING**] Add `static_ident!` macro (#21245) (overlookmotel) ### 🚀 Features - e7e1aea transformer/typescript: Add `optimize_enums` option for regular enum inlining (#20539) (Dunqing) - 679f57f transformer/typescript: Implement const enum inlining and declaration removal (#20508) (Dunqing) - 6dd061c semantic: Extend `MemberWriteTarget` to cover all property modification patterns (#21205) (Dunqing) - f134e24 minifier: Support `property_write_side_effects` option to drop unused property assignments (#20773) (Dunqing) - 75663c0 semantic: Add enum member value evaluation for const enum support (#20602) (Dunqing) - 3cfe8ed semantic: Add `MemberWriteTarget` flag to `ReferenceFlags` (#20772) (Dunqing) ### 🐛 Bug Fixes - af1a586 transformer/class-properties: Use correct property name when converting parameter properties (#21268) (Amal Jossy) - b43250a allocator: Move allocation tracking into `Bump` (#21342) (overlookmotel) - 36f505f allocator: `StringBuilder` use `Allocator::alloc_layout` (#21340) (overlookmotel) - 7a08a6f allocator: Fix allocation counting in `Allocator::alloc_concat_strs_array` (#21336) (overlookmotel) - 2338e28 ecmascript: Treat `this` as potentially having side effects (#21297) (sapphi-red) - bd8bd39 allocator: Remove unsafe hacks from `from_raw_parts` methods (#21283) (overlookmotel) - 8f4c340 allocator: Remove dangerous pointer const to mut cast (#21279) (overlookmotel) - aa9259f parser: Add missing error code for optional param diagnostic (#21258) (camc314) - 04b3c2f str: Fix unsound casting const pointers to mut pointers (#21242) (overlookmotel) - ceadf6c str: Make `Ident::from_raw` an unsafe function (#21241) (overlookmotel) - eab13b3 transformer/decorators: Avoid accessor storage name collisions (#21106) (Dunqing) - 07e8a30 transformer/react-refresh: Handle parenthesized variable initializers (#21047) (camc314) ### ⚡ Performance - c3ca6f6 allocator: `StringBuilder::from_strs_array_in` check for 0 length earlier (#21338) (overlookmotel) - c2422bb allocator: `Allocator::alloc_concat_strs_array` check for 0 length earlier (#21337) (overlookmotel) - 04b0fdc allocator: Mark `Allocator::alloc_layout` as `#[inline(always)]` (#21335) (overlookmotel) - 17aee9e allocator: Use `offset_from_unsigned` in `ChunkFooter::as_raw_parts` (#21280) (overlookmotel) - 61adedd minifier: Fix O(n²) perf on very many var decls (#21062) (Gunnlaugur Thor Briem) - addcd02 napi/parser, linter/plugins: Raw transfer deserializer for `Vec`s use shift instead of multiply where possible (#21142) (overlookmotel) - 3068ded napi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel) - eb400b8 napi/parser, linter/plugins: Remove `uint32` buffer view (#21140) (overlookmotel) - 2675085 napi/parser: Lazy deserialization use only `Int32Array` (#21139) (overlookmotel) - 5b35a53 napi/parser: Deserializing tokens use only `int32` array (#21138) (overlookmotel) - f163d10 parser: Tokens raw deserialization use `Int32Array` (#21137) (overlookmotel) - 7a86613 linter/plugins: Use `Int32Array`s for tokens and comments buffers (#21136) (overlookmotel) - 8c51121 napi/parser, linter/plugins: Raw transfer deserialize `Span` fields as `i32`s (#21135) (overlookmotel) - bc1bcdd napi/parser, linter/plugins: Inline trivial raw transfer field deserializers into node object definitions (#21134) (overlookmotel) - c0278ab napi/parser, linter/plugins: Use `Int32Array` in raw transfer deserializer (#21132) (overlookmotel) - 43482c7 linter/plugins: Use `>>` not `>>>` in binary search loops (#21129) (overlookmotel) ### 📚 Documentation - f5e1845 allocator: Upgrade headers in doc comments for `Bump` (#21263) (overlookmotel) - 2870174 allocator: Upper case `SAFETY` in comments (#21253) (overlookmotel) - 01bc269 str: Reformat `Ident` doc comments (#21240) (overlookmotel) - dd47359 allocator: Add doc comments for panics and errors (#21230) (overlookmotel)
# Oxlint ### 💥 BREAKING CHANGES - 382958a span: [**BREAKING**] Remove re-exports of string types from `oxc_span` crate (#21246) (overlookmotel) - c4aedfa str: [**BREAKING**] Add `static_ident!` macro (#21245) (overlookmotel) - 7354f3c linter: [**BREAKING**] Error on no matched files (#21144) (camc314) ### 🚀 Features - 91f2c79 linter/eslint-jest-plugin: Implemented `prefer-importing-jest-globals` rule (#21303) (Said Atrahouch) - a02f32c linter: Add release version for existing rules (#21363) (camchenry) - b9e93da linter: Allow tagging rules with release version (#21362) (camchenry) - f99ecda oxlint: Gate `vite.config.ts` recognition behind `VP_VERSION` env var (#21298) (leaysgur) - cf459d3 linter: Implement suggestion for `no-empty-function` rule (#21347) (Mikhail Baev) - 7213d61 linter: Adding pending suggestions fix to `valid_expect` rules. (#21249) (Said Atrahouch) - ae45312 linter: Introduce `--type-check-only` flag (#21184) (camc314) - 1ce8b90 linter: Implemented `valid-expect-in-promise` vitest and jest rule (#21170) (Said Atrahouch) - 39f7fda linter: Add auto-fix to `unicorn/prefer-default-parameters` (#21166) (yefan) - 15574bc linter/unicorn: Implement consistent-template-literal-escape (#21126) (AliceLanniste) - c5c8c03 linter/prefer-readonly-parameter-types: Move rule from nursery to pedantic (#21114) (camc314) - 1893be1 linter/no-useless-default-assignment: Move rule from nursery to correctness (#21113) (camc314) - 5462ff9 linter/strict-void-return: Move rule from nursery to pedantic (#21115) (camc314) - c2989bd linter/no-unnecessary-type-parameters: Move rule from nursery to suspicious (#21112) (camc314) - 79d339a linter/no-unnecessary-qualifier: Move rule from nursery to style (#21111) (camc314) ### 🐛 Bug Fixes - b577efc linter/unicorn: Handle optional chaining in `prefer-array-flat` and `no-invalid-remove-event-listener` (#21299) (Mikhail Baev) - 5e55735 oxlint/lsp: Skip .git directories in LSP walkers (#21316) (camc314) - ec7f6ed oxlint, oxfmt: Apply `check_for_writer_error` to `.flush()` (#21343) (Craig Morrison) - a17a08a linter/no-useless-assignment: Handle continue edges in loop analysis (#21358) (camc314) - a0eac12 linter/array-type: Move match to first stmt (#21357) (camc314) - 1b3abc3 linter: Exclude boundary tokens from JSXText whitespace check in isSpaceBetweenTokens (#21313) (bab) - ecbcf5e linter: More info to summary output for GitHub formatter (#21330) (Théo LUDWIG) - a0a8c62 linter/no-fallthrough: Check from start of switch case for empty lines (#21324) (Josh Cartmell) - 36f0bc4 linter/no-cycle: Report all cyclic dependencies inside a file (#21259) (camc314) - 3f80536 linter: Ignore regex flags other than `g`/`u`/`v` in `prefer-string-replace-all` (#21203) (bab) - f21d3aa linter/unicorn: Report on optional in `require-number-to-fixed-digits-argument` rule (#21207) (Mikhail Baev) - af8e122 linter: Render each config error as a separate diagnostic (#21120) (bab) - a950f55 linter/unicorn: Do not report on optionals in `no-single-promise-in-promise-methods` (#21157) (Mikhail Baev) - 472f8ee linter: Mark complete comment for unused disable directives + lsp fix (#21092) (copilot-swe-agent) - edd0865 linter/no-array-index-key: False positive when index is inside an expression within a template literal (#21123) (bab) - 7e8d520 linter/unicorn: Report on optional `foo?.postMessage` in `require-post-message-target-origin` rule (#21104) (Mikhail Baev) ### ⚡ Performance - addcd02 napi/parser, linter/plugins: Raw transfer deserializer for `Vec`s use shift instead of multiply where possible (#21142) (overlookmotel) - 3068ded napi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel) - eb400b8 napi/parser, linter/plugins: Remove `uint32` buffer view (#21140) (overlookmotel) - 7a86613 linter/plugins: Use `Int32Array`s for tokens and comments buffers (#21136) (overlookmotel) - 8c51121 napi/parser, linter/plugins: Raw transfer deserialize `Span` fields as `i32`s (#21135) (overlookmotel) - bc1bcdd napi/parser, linter/plugins: Inline trivial raw transfer field deserializers into node object definitions (#21134) (overlookmotel) - c0278ab napi/parser, linter/plugins: Use `Int32Array` in raw transfer deserializer (#21132) (overlookmotel) - 43482c7 linter/plugins: Use `>>` not `>>>` in binary search loops (#21129) (overlookmotel) ### 📚 Documentation - 7888280 linter: Move config docs for `no-restricted-exports` (#21360) (camchenry) - 162d26c linter: Improve docs for `typescript/array-type` (#21356) (camchenry) - a2dbaec linter: Add missing docs for options for `typescript/class-literal-property-style` (#21355) (camchenry) - 79593eb linter: Improve docs for `typescript/consistent-type-assertions` (#21353) (camchenry) - f9d20d2 linter: Move config option docs for `typescript/no-empty-object-type` (#21352) (camchenry) - a8f650d linter: Add missing config option docs for `prefer-string-start-ends-with` (#21332) (camchenry) - cfd8a4f linter: Don't rely on old eslint doc for available globals (#21334) (Nicolas Le Cam) - 03865fa linter: Jest/prefer-snapshot-hint: add doc comment for snapshot hint mode (#21290) (camchenry) - a6fe09b linter: Add missing docs for config options in `react` plugin (#21289) (camchenry) - 60eaf47 linter: Add missing docs for config options in unicorn plugin (#21288) (camchenry) - c3c2055 linter: `jsx-a11y/label-has-associated-control`: document the `assert` options (#21287) (camchenry) - a928ed9 linter: Add missing config docs for vitest plugin rules (#21285) (camchenry) - 7e07c7c linter: `id-length`: move enum docs to doc comments (#21281) (camchenry) - 9746bdf linter: Add missing docs for `class-methods-use-this` config (#21278) (camchenry) - 6ffe7a5 linter: Move docs for `Target` variant onto enum (#21277) (camchenry) - 305350d linter/plugins: Correct comments (#21130) (overlookmotel) # Oxfmt ### 💥 BREAKING CHANGES - 382958a span: [**BREAKING**] Remove re-exports of string types from `oxc_span` crate (#21246) (overlookmotel) ### 🚀 Features - e3081e1 oxfmt: Gate `vite.config.ts` recognition behind `VP_VERSION` env var (#21295) (leaysgur) - 5b0b573 oxfmt: Update prettier to 3.8.2 (#21294) (leaysgur) - 0d67834 oxfmt: Show hint for all files are ignored case (#21154) (leaysgur) ### 🐛 Bug Fixes - 2871fc2 oxfmt: Non idempotent formatting on comments in TS (#20449) (Cat Chen) - ec7f6ed oxlint, oxfmt: Apply `check_for_writer_error` to `.flush()` (#21343) (Craig Morrison) - 1a8c225 formatter: Preserve newline between self-closing JSX element and single-char text (#21149) (Justin Mecham) - 407b725 oxfmt: Indent dangling comments in empty enum with block indent (#21163) (Leonabcd123) - d13fd37 formatter: Remove extra outer parentheses on return with JSDoc type cast (#21109) (bab) - 22babde oxfmt: Fix unicode char escaping (#21162) (leaysgur) - 4da53e5 formatter: Preserve trailing comma in TSX arrow functions with default type params (#21151) (Justin Mecham) - 94fe774 oxfmt: Handle paths with consecutive leading slashes (#21155) (leaysgur) - 50c389b oxfmt: Support `.editorconfig` `quote_type` (#20989) (leaysgur) ### ⚡ Performance - 0ce619f formatter: Use `Allocator::alloc_concat_strs_array` instead of `StringBuilder::from_strs_array_in` (#21339) (overlookmotel)

For historical reasons,
oxc_spancrate was re-exporting string types which now live inoxc_strcrate.Remove these re-exports, and import these types directly from
oxc_str.Main motivation is just that it makes sense, but it should also have a minor positive effect on compile times -
oxc_spanandoxc_strcrates can now be compiled in parallel.