refactor: use LinkingMetadata::is_included to check if a module is included#7571
Conversation
How to use the Graphite Merge QueueAdd the label graphite: merge to this PR to add it to 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. |
2bc9875 to
ebdc26c
Compare
e70372f to
68e5c53
Compare
ebdc26c to
31eaa46
Compare
LinkingMetadata::is_included to check if a module is included
Benchmarks Rust
|
745d636 to
265c161
Compare
31eaa46 to
d5c41db
Compare
00cfcb7 to
2745aba
Compare
d5c41db to
df8bf9b
Compare
2745aba to
39fcf0c
Compare
Merge activity
|
df8bf9b to
473918d
Compare
✅ Deploy Preview for rolldown-rs canceled.
|
473918d to
4f8ebd2
Compare
There was a problem hiding this comment.
Pull request overview
This PR refactors the module inclusion tracking mechanism to use LinkingMetadata::is_included as the single source of truth, eliminating redundant tracking in EcmaViewMeta.
Key Changes:
- Removed
Includedbitflag fromEcmaViewMetaand adjusted remaining flag positions - Removed
NormalModule::is_included()method and all direct access to the old flag - Updated all inclusion checks to use
metas[idx].is_includedinstead
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
crates/rolldown_common/src/module/normal_module.rs |
Removed is_included() method; updated debug method to accept is_included parameter |
crates/rolldown_common/src/ecmascript/ecma_view.rs |
Removed Included bitflag and is_included() method; adjusted remaining flag bit positions |
crates/rolldown/src/stages/link_stage/tree_shaking/include_statements.rs |
Removed redundant flag set operations; updated debug call site; improved comment clarity |
crates/rolldown/src/stages/link_stage/patch_module_dependencies.rs |
Changed inclusion check to use metas[idx].is_included |
crates/rolldown/src/stages/generate_stage/mod.rs |
Updated filter to use metas[idx].is_included |
crates/rolldown/src/stages/generate_stage/compute_cross_chunk_links.rs |
Changed inclusion check to use metas[idx].is_included |
crates/rolldown/src/stages/generate_stage/code_splitting.rs |
Updated all inclusion checks (6 locations) to use metas[idx].is_included |
crates/rolldown/src/stages/generate_stage/advanced_chunks.rs |
Updated inclusion checks to use metas[idx].is_included |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
4f8ebd2 to
a7c247c
Compare
…included (#7571) Use `LinkingMetadata::is_included` as the single source of truth to determine whether a module is included in the final bundle.
a7c247c to
35e3261
Compare
## [1.0.0-beta.56] - 2025-12-22 ### 💥 BREAKING CHANGES - rename `MIXED_EXPORT` error to `MIXED_EXPORTS` (#7565) by @sapphi-red ### 🚀 Features - rename `id` property to `exporter` in CIRCULAR_REEXPORT error (#7592) by @sapphi-red - add `ids` property to `CIRCULAR_DEPENDENCY` error (#7591) by @sapphi-red - node/dev: expose `devMode.lazy` (#7549) by @hyf0 - set log and pos properties for `parseAst` function errors (#7568) by @sapphi-red - set log and pos properties for logs (#7567) by @sapphi-red - test-dev-sever: support to manually configure port, run tests in concurrent (#7576) by @hyf0 - add `exporter` property to `MISSING_EXPORT` error (#7564) by @sapphi-red - add `id` property to `PARSE_ERROR` error (#7563) by @sapphi-red - support ImporterId hook filter (#7540) by @IWANABETHATGUY ### 🐛 Bug Fixes - types: better "go to definition" experience for interface `OutputPlugin` (#7610) by @KazariEX - `postBanner` content should be placed after shebang (#7583) by @btea - use sanitized filename for preserve modules chunk name (#7603) by @IWANABETHATGUY - correct filter out unused cjs namespace (#7602) by @IWANABETHATGUY - watch: property respect `notify.pollInternal` and `notify.compareContents` (#7595) by @sapphi-red - make `cleanDir` work with default output directory (#7579) by @shulaoda - merge `MISSING_NAME_OPTION_FOR_UMD_EXPORT` error to `MISSING_NAME_OPTION_FOR_IIFE_EXPORT` error (#7566) by @sapphi-red - dev/hmr: ensure cjs modules with no exports reference correct `module` identifier (#7544) by @leegeunhyeok ### 🚜 Refactor - remove `stable_id` field from `PARSE_ERROR` error (#7593) by @sapphi-red - make include_runtime_symbol reuseable after linking stage (#7580) by @IWANABETHATGUY - rust/dev: construct the bundler within itself (#7553) by @hyf0 - rust/watcher: polish API of `Watcher` struct (#7551) by @hyf0 - use `LinkingMetadata::stmt_info_included` to check if a stmt_info is included (#7572) by @IWANABETHATGUY - use `LinkingMetadata::is_included` to check if a module is included (#7571) by @IWANABETHATGUY - store module and stmt_info is included info to module meta (#7570) by @IWANABETHATGUY - make include_* method reunsable after linking stage (#7552) by @IWANABETHATGUY - rust/watcher: construct the bundler within watcher itself (#7550) by @hyf0 - extract make include_runtime_symbol reusable (#7546) by @IWANABETHATGUY ### ⚙️ Miscellaneous Tasks - renovate: add `kill-port` in `ignoreDeps` in renovate.json (#7619) by @sapphi-red - deps: update rust crates (#7617) by @renovate[bot] - deps: update npm packages (#7616) by @renovate[bot] - deps: update github-actions (#7615) by @renovate[bot] - ci: skip benchmark workflows on draft PRs (#7611) by @Copilot - deps: update dependency rolldown-plugin-dts to ^0.19.0 (#7607) by @renovate[bot] - deps: update dependency oxlint-tsgolint to v0.10.0 (#7601) by @renovate[bot] - deps: update dependency rolldown-plugin-dts to v0.18.4 (#7599) by @renovate[bot] - deps: update notify (#7594) by @sapphi-red - test-dev-server: add retry mechanism to hmr-full-bundle-mode tests (#7588) by @Copilot - deps: update napi to v3.7.1 (#7590) by @renovate[bot] - add JSDoc documentation for memfs type (#7587) by @Copilot - deps: update dependency oxlint to v1.34.0 (#7589) by @renovate[bot] - move some tests in ignored-by-unsupported-features that are passing (#7569) by @sapphi-red - deps: update dependency oxlint-tsgolint to v0.9.2 (#7582) by @renovate[bot] - deps: update oxc resolver to v11.16.0 (#7574) by @renovate[bot] - test/dev-server: don't run `pnpm install` during tests (#7560) by @hyf0 - test/dev-server: use `kill-port@1` to improve performance (#7575) by @hyf0 - normalize error object to make some Rollup tests pass (#7562) by @sapphi-red - ci: separate dev-server(hmr) tests and normal tests (#7558) by @hyf0 - ci: make native rolldown build reusable (#7557) by @hyf0 - resolve some TODOs (#7561) by @sapphi-red ### ❤️ New Contributors * @KazariEX made their first contribution in [#7610](#7610) * @leegeunhyeok made their first contribution in [#7544](#7544) Co-authored-by: shulaoda <[email protected]>

Use
LinkingMetadata::is_includedas the single source of truth to determine whether a module is included in the final bundle.