Skip to content

Comments

fix: apply avoid-breaking-exported-api = false to clippy.toml and fix clippy errors#7982

Merged
hyf0 merged 1 commit intomainfrom
fix/clippy-avoid-breaking-exported-api
Jan 21, 2026
Merged

fix: apply avoid-breaking-exported-api = false to clippy.toml and fix clippy errors#7982
hyf0 merged 1 commit intomainfrom
fix/clippy-avoid-breaking-exported-api

Conversation

@Boshen
Copy link
Member

@Boshen Boshen commented Jan 21, 2026

Summary

Applied avoid-breaking-exported-api = false to clippy.toml to enable more aggressive clippy lints that would normally be suppressed for API stability. Since we don't have downstream users, we don't care about external API changes, and this makes the codebase cleaner.

Changes

Configuration

  • Added avoid-breaking-exported-api = false to clippy.toml with comment explaining the rationale
  • Added allow rules in Cargo.toml for lints requiring breaking API changes:
    • trivially_copy_pass_by_ref
    • struct_field_names
    • unnecessary_wraps
    • unused_self

Code Fixes

  • Updated io::Error::new(ErrorKind::Other, err) to io::Error::other(err) in rolldown_fs
  • Renamed Chunk::chunk_id to Chunk::id to avoid struct field name redundancy
  • Changed severity: &Severity to severity: Severity (pass-by-value) in build_diagnostic
  • Changed &Option<T> to Option<&T> in function signatures

Test plan

  • cargo check passes
  • cargo clippy --all-targets --all-features passes with no errors

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings January 21, 2026 05:09
@netlify
Copy link

netlify bot commented Jan 21, 2026

Deploy Preview for rolldown-rs ready!

Name Link
🔨 Latest commit b60ce41
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/6970a79d12434600088069dd
😎 Deploy Preview https://deploy-preview-7982--rolldown-rs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enables more aggressive clippy lints by setting avoid-breaking-exported-api = false in clippy.toml, since the project has no downstream users. The changes include configuration updates and code fixes to satisfy the newly enabled lints.

Changes:

  • Added avoid-breaking-exported-api = false to clippy configuration
  • Updated API signatures to use Option<&T> instead of &Option<T> and pass-by-value for Copy types
  • Replaced io::Error::new(ErrorKind::Other, err) with io::Error::other(err)
  • Renamed Chunk::chunk_id to Chunk::id to eliminate redundancy

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
clippy.toml Added avoid-breaking-exported-api = false configuration
Cargo.toml Added allow rules for lints requiring breaking API changes
crates/rolldown_utils/src/pattern_filter.rs Changed parameter from &Option<String> to Option<&String>
crates/rolldown_plugin_vite_transform/src/utils.rs Changed parameter from &Option<ModuleType> to Option<&ModuleType>
crates/rolldown_plugin_vite_transform/src/lib.rs Updated call sites for filter() and build_diagnostic()
crates/rolldown_plugin_isolated_declaration/src/lib.rs Updated severity parameter from reference to value
crates/rolldown_fs/src/memory.rs Replaced io::Error::new() with io::Error::other()
crates/rolldown_error/src/build_diagnostic/constructors.rs Changed severity parameter from &Severity to Severity
crates/rolldown_ecmascript/src/ecma_compiler.rs Updated severity argument from reference to value
crates/rolldown_devtools_action/src/definitions/chunk_graph_ready.rs Renamed field from chunk_id to id
crates/rolldown/src/utils/pre_process_ecma_ast.rs Updated severity arguments from reference to value
crates/rolldown/src/stages/generate_stage/mod.rs Updated field name from chunk_id to id
test262 Updated subproject commit
rollup Updated subproject commit

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

Benchmarks Rust

  • target: main(8911586)
  • pr: fix/clippy-avoid-breaking-exported-api(b60ce41)
group                                                        pr                                     target
-----                                                        --                                     ------
bundle/bundle@multi-duplicated-top-level-symbol              1.00     67.2±1.35ms        ? ?/sec    1.01     67.7±1.67ms        ? ?/sec
bundle/bundle@multi-duplicated-top-level-symbol-sourcemap    1.00     74.0±1.36ms        ? ?/sec    1.01     75.0±2.90ms        ? ?/sec
bundle/bundle@rome_ts                                        1.01    101.4±3.63ms        ? ?/sec    1.00    100.9±1.56ms        ? ?/sec
bundle/bundle@rome_ts-sourcemap                              1.00    112.0±1.51ms        ? ?/sec    1.00    112.3±1.77ms        ? ?/sec
bundle/bundle@threejs                                        1.00     35.6±0.75ms        ? ?/sec    1.02     36.2±1.98ms        ? ?/sec
bundle/bundle@threejs-sourcemap                              1.00     40.3±0.53ms        ? ?/sec    1.00     40.4±0.53ms        ? ?/sec
bundle/bundle@threejs10x                                     1.00    367.9±2.87ms        ? ?/sec    1.00    368.8±6.53ms        ? ?/sec
bundle/bundle@threejs10x-sourcemap                           1.00    422.8±3.04ms        ? ?/sec    1.01    427.2±4.50ms        ? ?/sec
scan/scan@rome_ts                                            1.00     81.5±1.52ms        ? ?/sec    1.02     83.0±1.52ms        ? ?/sec
scan/scan@threejs                                            1.00     28.4±1.69ms        ? ?/sec    1.01     28.6±1.58ms        ? ?/sec
scan/scan@threejs10x                                         1.00    288.9±4.83ms        ? ?/sec    1.01    292.9±4.57ms        ? ?/sec

@hyf0 hyf0 self-assigned this Jan 21, 2026
Copilot AI review requested due to automatic review settings January 21, 2026 07:35
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Boshen Boshen force-pushed the fix/clippy-avoid-breaking-exported-api branch from 882bc64 to 0862d4f Compare January 21, 2026 07:47
@Boshen
Copy link
Member Author

Boshen commented Jan 21, 2026

@hyf0 let's get this rolling and I'll get Claude to fix the added clippy rules.

@Boshen Boshen requested a review from hyf0 January 21, 2026 09:37
@hyf0 hyf0 force-pushed the fix/clippy-avoid-breaking-exported-api branch from 0862d4f to 3369994 Compare January 21, 2026 10:15
Copilot AI review requested due to automatic review settings January 21, 2026 10:15
… clippy errors

Applied avoid-breaking-exported-api = false to clippy.toml to enable more
aggressive clippy lints that would normally be suppressed for API stability.
Since we don't have downstream users, we don't care about external API changes,
and this makes the codebase cleaner.

Fixed all clippy errors that were revealed:
- Updated io::Error::new(ErrorKind::Other, err) to io::Error::other(err)
- Renamed Chunk::chunk_id to Chunk::id to avoid struct field name redundancy
- Changed pass-by-reference to pass-by-value for Severity parameter
- Changed &Option<T> to Option<&T> in function signatures

Added allow rules for lints that would require breaking API changes:
- trivially_copy_pass_by_ref
- struct_field_names
- unnecessary_wraps
- unused_self

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@hyf0 hyf0 force-pushed the fix/clippy-avoid-breaking-exported-api branch from 3369994 to b60ce41 Compare January 21, 2026 10:16
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@hyf0 hyf0 merged commit 1fa389f into main Jan 21, 2026
34 checks passed
@hyf0 hyf0 deleted the fix/clippy-avoid-breaking-exported-api branch January 21, 2026 10:28
@github-actions github-actions bot mentioned this pull request Jan 22, 2026
shulaoda pushed a commit that referenced this pull request Jan 22, 2026
## [1.0.0-rc.1] - 2026-01-22

### 🚀 Features

- debug_info: add facade chunk elimination reason (#7980) by @IWANABETHATGUY
- support lazy barrel optimization (#7933) by @shulaoda
- add `experimental.lazyBarrel` option (#7908) by @shulaoda
- skip unused external modules from IIFE parameter list (#7978) by @sapphi-red
- add custom panic hook for better crash reporting (#7752) by @shulaoda
- treeshake: add `invalidImportSideEffects` option (#7958) by @shulaoda
- merge allow-extension emitted chunks (#7940) by @IWANABETHATGUY
- nativeMagicString generateMap (#7944) by @IWANABETHATGUY
- Include meta.magicString in RenderChunkMeta (#7943) by @IWANABETHATGUY
- debug_info: add debug info for eliminated facade chunks (#7946) by @IWANABETHATGUY
- stablize `strictExecutionOrder` and move to `output.strictExecutionOrder` from `experimental.strictExecutionOrder` (#7901) by @sapphi-red
- add documentation link to require() error message (#7898) by @Copilot
- add `codeSplitting: boolean` and deprecate `inlineDynamicImports` (#7870) by @hyf0
- dev: change lazy module URL to `/@vite/lazy` from `/lazy` (#7884) by @sapphi-red

### 🐛 Bug Fixes

- transform JS files containing `</script>` to escape template literals (#7987) by @IWANABETHATGUY
- apply avoid-breaking-exported-api = false to clippy.toml and fix clippy errors (#7982) by @Boshen
- pass `kind` from `this.resolve` (#7981) by @sapphi-red
- rolldown_plugin_vite_resolve: ignore yarn resolution errors and fallback to other resolvers (#7968) by @sapphi-red
- renamer: prevent renaming symbols when there no conflicts (#7936) by @Dunqing
- correct minifyInterExports when emitted chunk got merged (#7941) by @IWANABETHATGUY
- deduplicate entry points when module is both emitted and dynamically imported (#7885) by @IWANABETHATGUY
- dev: add `@vite-ignore` to lazy compilation proxy module import (#7883) by @sapphi-red

### 🚜 Refactor

- rust: enable clippy nursery lint group (#8002) by @Boshen
- rust: fix inconsistent_struct_constructor clippy lint (#7999) by @Boshen
- rust: fix needless_pass_by_ref_mut clippy lint (#7994) by @Boshen
- rust: fix unnecessary_wraps clippy lint (#7993) by @Boshen
- rust: fix enum_variant_names clippy lint (#7992) by @Boshen
- fix single_match clippy lint (#7997) by @Boshen
- rust: fix redundant_clone clippy lint (#7996) by @Boshen
- rust: rename CJS to Cjs to follow upper_case_acronyms lint (#7991) by @Boshen
- rust: remove unnecessary Box wrapper around Vec in MemberExprRef (#7990) by @Boshen
- import_record: make resolved_module optional (#7907) by @shulaoda
- remove unnecessary `.parse` (#7966) by @sapphi-red
- remove unused `ImportRecordMeta::IsPlainImport` (#7948) by @shulaoda
- proper set chunk meta (#7939) by @IWANABETHATGUY
- module_loader: remove `try_spawn_with_cache` (#7920) by @shulaoda
- link_stage: simplify `ImportStatus::NoMatch` to unit variant (#7909) by @shulaoda
- improve global scope symbol reservation in chunk deconfliction (#7906) by @IWANABETHATGUY
- simplify ast unwrapping in generate stage (#7900) by @IWANABETHATGUY
- generate_stage: optimize cross-chunk imports computation (#7889) by @shulaoda
- link_stage: move runtime require logic into match branch (#7892) by @shulaoda
- link_stage: simplify runtime require reference conditions (#7891) by @shulaoda
- link_stage: inline and simplify external dynamic import check (#7890) by @shulaoda
- generate_stage: simplify external module import collection logic (#7887) by @shulaoda
- avoid redundant module lookup in TLA computation (#7886) by @shulaoda
- dev: `devEngine.compileEntry` does not return null (#7882) by @sapphi-red
- dev: fix type errors for test HMR runtime (#7881) by @sapphi-red
- dev: move `clientId` property to `DevRuntime` base class (#7880) by @sapphi-red
- dev: generate client id in browser (#7878) by @hyf0

### 📚 Documentation

- apis: organize hook filters documentation and add composable filters section (#8003) by @sapphi-red
- update `vitepress-plugin-group-icons` (#7947) by @yuyinws
- add in-depth documentation for lazy barrel optimization (#7969) by @shulaoda
- bump theme & update activeMatch for reference (#7963) by @mdong1909
- mark `build()` API as experimental (#7954) by @sapphi-red
- enhance search functionality with improved scoring and filtering logic (#7935) by @hyf0
- add minor comments to multiple types (#7930) by @sapphi-red
- refactor advanedChunks related content to adapt manual code splitting concept (#7925) by @hyf0
- apis: add content to Bundler API page (#7926) by @sapphi-red
- apis: restructure plugin API related docs (#7924) by @sapphi-red
- add plugin API docs (#7923) by @sapphi-red
- apis: add docs to important APIs (#7913) by @sapphi-red
- move the important APIs to the top of the sidebar (#7912) by @sapphi-red
- apis: add more content to CLI documentation (#7911) by @sapphi-red
- apis: generate CLI docs from --help output (#7910) by @sapphi-red
- add fathom analytics (#7896) by @mdong1909

### ⚡ Performance

- use u32 for string indices in string_wizard and rolldown to reduce memory usage (#7989) by @IWANABETHATGUY
- rust: remove all usages of `with_scope_tree_child_ids(true)` for `SemanticBuilder` (#7995) by @Dunqing
- renamer: skip unnecessary nested scope symbol processing (#7899) by @Dunqing
- module_loader: use ArcStr for importer_id to avoid string copy (#7922) by @shulaoda
- module_loader: defer `ModuleTaskOwner` construction until needed (#7921) by @shulaoda
- renamer: optimize symbol renaming by eliminating `rename_non_root_symbol` pass (#7867) by @Dunqing

### 🧪 Testing

- add lazy barrel optimization test cases (#7967) by @shulaoda

### ⚙️ Miscellaneous Tasks

- remove lazy barrel option (#8010) by @shulaoda
- mark watch API as experimental (#8004) by @sapphi-red
- deps: update dependency lodash-es to v4.17.23 [security] (#8001) by @renovate[bot]
- git ignore zed local config (#7988) by @IWANABETHATGUY
- setup publint for published packages (#7972) by @Copilot
- enable `tagged_template_transform ` uncondionally (#7975) by @IWANABETHATGUY
- deps: update oxc to v0.110.0 (#7964) by @renovate[bot]
- deps: update oxc apps (#7962) by @renovate[bot]
- ai: add upgrade-oxc Claude skill (#7957) by @Boshen
- deps: update rollup submodule for tests to v4.55.2 (#7959) by @sapphi-red
- deps: update test262 submodule for tests (#7960) by @sapphi-red
- deps: update crate-ci/typos action to v1.42.1 (#7961) by @renovate[bot]
- deps: update rust crates (#7951) by @renovate[bot]
- deps: update npm packages (#7953) by @renovate[bot]
- deps: update github-actions (#7952) by @renovate[bot]
- deps: update npm packages (#7950) by @renovate[bot]
- format magic-string test before write to disk (#7945) by @IWANABETHATGUY
- deps: update dependency rolldown-plugin-dts to ^0.21.0 (#7915) by @renovate[bot]
- deps: update dependency oxlint-tsgolint to v0.11.1 (#7914) by @renovate[bot]
- deps: update dependency diff to v8.0.3 [security] (#7904) by @renovate[bot]
- remove outdated TODO comment in `collect_depended_symbols` (#7888) by @shulaoda
- deps: update oxc resolver to v11.16.3 (#7876) by @renovate[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants