Skip to content

Use ThinVec more in the AST - #158755

Merged
rust-bors[bot] merged 3 commits into
rust-lang:mainfrom
nnethercote:ast-ThinVec
Jul 6, 2026
Merged

Use ThinVec more in the AST#158755
rust-bors[bot] merged 3 commits into
rust-lang:mainfrom
nnethercote:ast-ThinVec

Conversation

@nnethercote

@nnethercotennethercote commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

For consistency; it has negligible effects on perf. Details in individual commits.

r? @mejrs

Because we use `ThinVec` rather than `Vec` almost everywhere else in the
AST.
Because we use `ThinVec` rather than `Vec` almost everywhere else in the
AST.
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 4, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 4, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Jul 4, 2026
@rust-bors

rust-borsBot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 973fa09 (973fa097ee83e915d5a9ba83a9cbb259b4573170)
Base parent: c397dae (c397dae808f70caebab1fc4e11b3edf7e59f58c7)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (973fa09): comparison URL.

Overall result: no relevant changes - no action needed

Benchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up.

@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (primary 0.3%, secondary -5.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
0.9%[0.8%, 1.0%]3
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-1.4%[-1.4%, -1.4%]1
Improvements ✅
(secondary)
-5.6%[-5.7%, -5.5%]2
All ❌✅ (primary)0.3%[-1.4%, 1.0%]4

Cycles

Results (primary 2.2%, secondary -3.5%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.2%[2.2%, 2.2%]1
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.5%[-5.5%, -2.4%]3
All ❌✅ (primary)2.2%[2.2%, 2.2%]1

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 485.944s -> 484.62s (-0.27%)
Artifact size: 393.37 MiB -> 393.83 MiB (0.12%)

@rustbotrustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 4, 2026
@nnethercote
nnethercote marked this pull request as ready for review July 4, 2026 12:44
@rustbot

Copy link
Copy Markdown
Collaborator

The parser was modified, potentially altering the grammar of (stable) Rust
which would be a breaking change.

cc @fmease

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 4, 2026

@mejrsmejrs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@rust-bors

rust-borsBot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3a0a977 has been approved by mejrs

It is now in the queue for this repository.

🌲 The tree is currently closed for pull requests below priority 1000. This pull request will be tested once the tree is reopened.

@rust-borsrust-borsBot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 4, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Jul 5, 2026
Use `ThinVec` more in the AST
For consistency; it has negligible effects on perf. Details in individual commits.
r? @mejrs
@jhprattjhpratt mentioned this pull request Jul 5, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Jul 5, 2026
Use `ThinVec` more in the AST
For consistency; it has negligible effects on perf. Details in individual commits.
r? @mejrs
@jhprattjhpratt mentioned this pull request Jul 5, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 5, 2026
Use `ThinVec` more in the AST
For consistency; it has negligible effects on perf. Details in individual commits.
r? @mejrs
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 5, 2026
Use `ThinVec` more in the AST
For consistency; it has negligible effects on perf. Details in individual commits.
r? @mejrs
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jul 5, 2026
Use `ThinVec` more in the AST
For consistency; it has negligible effects on perf. Details in individual commits.
r? @mejrs
jhpratt added a commit to jhpratt/rust that referenced this pull request Jul 6, 2026
Use `ThinVec` more in the AST
For consistency; it has negligible effects on perf. Details in individual commits.
r? @mejrs
@jhprattjhpratt mentioned this pull request Jul 6, 2026
rust-borsBot pushed a commit that referenced this pull request Jul 6, 2026
Rollup of 20 pull requests
Successful merges:
- #158377 (add `-Zforce-intrinsic-fallback` flag)
- #158642 (Clarify some interning details)
- #158743 (Look for cdb location in the registry first)
- #158775 (bootstrap: only encode RUSTFLAGS when a flag contains a space)
- #158782 (Add and use cfg(target_has_threads) to enforce no_thread impl usage)
- #158785 (hook intrinsic-test into aarch64-gnu)
- #157734 (Stabilize `local_key_cell_update`)
- #158183 (std: allocate less memory in `current_exe` for OpenBSD)
- #158671 (Move tests batch 17)
- #158730 (Update `FIXME(static_mut_refs)` comments)
- #158752 (Reorganize `tests/ui/issues` [18/N])
- #158755 (Use `ThinVec` more in the AST)
- #158757 (Fix incorrect tracking issue for `read_le`/`read_be`)
- #158765 (Fix ICE on non-ident path in `doc(auto_cfg values)`)
- #158771 (library: expand HashSet::extract_if coverage)
- #158772 (rustc-dev-guide subtree update)
- #158776 (fix: emit diagnostic for AVR target without target-cpu)
- #158786 (Add regression test for builtin attr macro values)
- #158807 (Add regression test for CString::clone_into unwind safety)
- #158825 (Fix typo)
@jhprattjhpratt mentioned this pull request Jul 6, 2026
rust-borsBot pushed a commit that referenced this pull request Jul 6, 2026
Rollup of 24 pull requests
Successful merges:
- #158377 (add `-Zforce-intrinsic-fallback` flag)
- #158642 (Clarify some interning details)
- #158694 (Positive test for closures needing expectations)
- #158743 (Look for cdb location in the registry first)
- #158775 (bootstrap: only encode RUSTFLAGS when a flag contains a space)
- #158782 (Add and use cfg(target_has_threads) to enforce no_thread impl usage)
- #158785 (hook intrinsic-test into aarch64-gnu)
- #158819 (Put `InhabitedPredicate::NotInModule` earlier in disjunction since it can be a lot faster)
- #157734 (Stabilize `local_key_cell_update`)
- #158183 (std: allocate less memory in `current_exe` for OpenBSD)
- #158310 (Remove unexpected usage of Unambig in non-infer variants)
- #158671 (Move tests batch 17)
- #158730 (Update `FIXME(static_mut_refs)` comments)
- #158752 (Reorganize `tests/ui/issues` [18/N])
- #158755 (Use `ThinVec` more in the AST)
- #158757 (Fix incorrect tracking issue for `read_le`/`read_be`)
- #158765 (Fix ICE on non-ident path in `doc(auto_cfg values)`)
- #158771 (library: expand HashSet::extract_if coverage)
- #158772 (rustc-dev-guide subtree update)
- #158776 (fix: emit diagnostic for AVR target without target-cpu)
- #158786 (Add regression test for builtin attr macro values)
- #158810 (Add supplementary information for get_unchecked(mut))
- #158825 (Fix typo)
- #158838 (tidy: Use `empty_alternate = true` for triagebot mention glob check)
rust-borsBot pushed a commit that referenced this pull request Jul 6, 2026
Rollup of 24 pull requests
Successful merges:
- #158377 (add `-Zforce-intrinsic-fallback` flag)
- #158642 (Clarify some interning details)
- #158694 (Positive test for closures needing expectations)
- #158743 (Look for cdb location in the registry first)
- #158775 (bootstrap: only encode RUSTFLAGS when a flag contains a space)
- #158782 (Add and use cfg(target_has_threads) to enforce no_thread impl usage)
- #158785 (hook intrinsic-test into aarch64-gnu)
- #158819 (Put `InhabitedPredicate::NotInModule` earlier in disjunction since it can be a lot faster)
- #157734 (Stabilize `local_key_cell_update`)
- #158183 (std: allocate less memory in `current_exe` for OpenBSD)
- #158310 (Remove unexpected usage of Unambig in non-infer variants)
- #158671 (Move tests batch 17)
- #158730 (Update `FIXME(static_mut_refs)` comments)
- #158752 (Reorganize `tests/ui/issues` [18/N])
- #158755 (Use `ThinVec` more in the AST)
- #158757 (Fix incorrect tracking issue for `read_le`/`read_be`)
- #158765 (Fix ICE on non-ident path in `doc(auto_cfg values)`)
- #158771 (library: expand HashSet::extract_if coverage)
- #158772 (rustc-dev-guide subtree update)
- #158776 (fix: emit diagnostic for AVR target without target-cpu)
- #158786 (Add regression test for builtin attr macro values)
- #158810 (Add supplementary information for get_unchecked(mut))
- #158825 (Fix typo)
- #158838 (tidy: Use `empty_alternate = true` for triagebot mention glob check)
rust-borsBot pushed a commit that referenced this pull request Jul 6, 2026
Rollup of 24 pull requests
Successful merges:
- #158377 (add `-Zforce-intrinsic-fallback` flag)
- #158642 (Clarify some interning details)
- #158694 (Positive test for closures needing expectations)
- #158743 (Look for cdb location in the registry first)
- #158775 (bootstrap: only encode RUSTFLAGS when a flag contains a space)
- #158782 (Add and use cfg(target_has_threads) to enforce no_thread impl usage)
- #158785 (hook intrinsic-test into aarch64-gnu)
- #158819 (Put `InhabitedPredicate::NotInModule` earlier in disjunction since it can be a lot faster)
- #157734 (Stabilize `local_key_cell_update`)
- #158183 (std: allocate less memory in `current_exe` for OpenBSD)
- #158310 (Remove unexpected usage of Unambig in non-infer variants)
- #158671 (Move tests batch 17)
- #158730 (Update `FIXME(static_mut_refs)` comments)
- #158752 (Reorganize `tests/ui/issues` [18/N])
- #158755 (Use `ThinVec` more in the AST)
- #158757 (Fix incorrect tracking issue for `read_le`/`read_be`)
- #158765 (Fix ICE on non-ident path in `doc(auto_cfg values)`)
- #158771 (library: expand HashSet::extract_if coverage)
- #158772 (rustc-dev-guide subtree update)
- #158776 (fix: emit diagnostic for AVR target without target-cpu)
- #158786 (Add regression test for builtin attr macro values)
- #158810 (Add supplementary information for get_unchecked(mut))
- #158825 (Fix typo)
- #158838 (tidy: Use `empty_alternate = true` for triagebot mention glob check)
@rust-bors
rust-borsBot merged commit eadd942 into rust-lang:mainJul 6, 2026
14 checks passed
@rustbotrustbot added this to the 1.99.0 milestone Jul 6, 2026
rust-timer added a commit that referenced this pull request Jul 6, 2026
Rollup merge of #158755 - nnethercote:ast-ThinVec, r=mejrs
Use `ThinVec` more in the AST
For consistency; it has negligible effects on perf. Details in individual commits.
r? @mejrs
@nnethercote
nnethercote deleted the ast-ThinVec branch July 6, 2026 23:08
pullBot pushed a commit to xtqqczze/rust-lang-miri that referenced this pull request Jul 7, 2026
Rollup of 24 pull requests
Successful merges:
- rust-lang/rust#158377 (add `-Zforce-intrinsic-fallback` flag)
- rust-lang/rust#158642 (Clarify some interning details)
- rust-lang/rust#158694 (Positive test for closures needing expectations)
- rust-lang/rust#158743 (Look for cdb location in the registry first)
- rust-lang/rust#158775 (bootstrap: only encode RUSTFLAGS when a flag contains a space)
- rust-lang/rust#158782 (Add and use cfg(target_has_threads) to enforce no_thread impl usage)
- rust-lang/rust#158785 (hook intrinsic-test into aarch64-gnu)
- rust-lang/rust#158819 (Put `InhabitedPredicate::NotInModule` earlier in disjunction since it can be a lot faster)
- rust-lang/rust#157734 (Stabilize `local_key_cell_update`)
- rust-lang/rust#158183 (std: allocate less memory in `current_exe` for OpenBSD)
- rust-lang/rust#158310 (Remove unexpected usage of Unambig in non-infer variants)
- rust-lang/rust#158671 (Move tests batch 17)
- rust-lang/rust#158730 (Update `FIXME(static_mut_refs)` comments)
- rust-lang/rust#158752 (Reorganize `tests/ui/issues` [18/N])
- rust-lang/rust#158755 (Use `ThinVec` more in the AST)
- rust-lang/rust#158757 (Fix incorrect tracking issue for `read_le`/`read_be`)
- rust-lang/rust#158765 (Fix ICE on non-ident path in `doc(auto_cfg values)`)
- rust-lang/rust#158771 (library: expand HashSet::extract_if coverage)
- rust-lang/rust#158772 (rustc-dev-guide subtree update)
- rust-lang/rust#158776 (fix: emit diagnostic for AVR target without target-cpu)
- rust-lang/rust#158786 (Add regression test for builtin attr macro values)
- rust-lang/rust#158810 (Add supplementary information for get_unchecked(mut))
- rust-lang/rust#158825 (Fix typo)
- rust-lang/rust#158838 (tidy: Use `empty_alternate = true` for triagebot mention glob check)
github-actionsBot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Jul 20, 2026
Rollup of 24 pull requests
Successful merges:
- rust-lang/rust#158377 (add `-Zforce-intrinsic-fallback` flag)
- rust-lang/rust#158642 (Clarify some interning details)
- rust-lang/rust#158694 (Positive test for closures needing expectations)
- rust-lang/rust#158743 (Look for cdb location in the registry first)
- rust-lang/rust#158775 (bootstrap: only encode RUSTFLAGS when a flag contains a space)
- rust-lang/rust#158782 (Add and use cfg(target_has_threads) to enforce no_thread impl usage)
- rust-lang/rust#158785 (hook intrinsic-test into aarch64-gnu)
- rust-lang/rust#158819 (Put `InhabitedPredicate::NotInModule` earlier in disjunction since it can be a lot faster)
- rust-lang/rust#157734 (Stabilize `local_key_cell_update`)
- rust-lang/rust#158183 (std: allocate less memory in `current_exe` for OpenBSD)
- rust-lang/rust#158310 (Remove unexpected usage of Unambig in non-infer variants)
- rust-lang/rust#158671 (Move tests batch 17)
- rust-lang/rust#158730 (Update `FIXME(static_mut_refs)` comments)
- rust-lang/rust#158752 (Reorganize `tests/ui/issues` [18/N])
- rust-lang/rust#158755 (Use `ThinVec` more in the AST)
- rust-lang/rust#158757 (Fix incorrect tracking issue for `read_le`/`read_be`)
- rust-lang/rust#158765 (Fix ICE on non-ident path in `doc(auto_cfg values)`)
- rust-lang/rust#158771 (library: expand HashSet::extract_if coverage)
- rust-lang/rust#158772 (rustc-dev-guide subtree update)
- rust-lang/rust#158776 (fix: emit diagnostic for AVR target without target-cpu)
- rust-lang/rust#158786 (Add regression test for builtin attr macro values)
- rust-lang/rust#158810 (Add supplementary information for get_unchecked(mut))
- rust-lang/rust#158825 (Fix typo)
- rust-lang/rust#158838 (tidy: Use `empty_alternate = true` for triagebot mention glob check)
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
Rollup of 24 pull requests
Successful merges:
- rust-lang/rust#158377 (add `-Zforce-intrinsic-fallback` flag)
- rust-lang/rust#158642 (Clarify some interning details)
- rust-lang/rust#158694 (Positive test for closures needing expectations)
- rust-lang/rust#158743 (Look for cdb location in the registry first)
- rust-lang/rust#158775 (bootstrap: only encode RUSTFLAGS when a flag contains a space)
- rust-lang/rust#158782 (Add and use cfg(target_has_threads) to enforce no_thread impl usage)
- rust-lang/rust#158785 (hook intrinsic-test into aarch64-gnu)
- rust-lang/rust#158819 (Put `InhabitedPredicate::NotInModule` earlier in disjunction since it can be a lot faster)
- rust-lang/rust#157734 (Stabilize `local_key_cell_update`)
- rust-lang/rust#158183 (std: allocate less memory in `current_exe` for OpenBSD)
- rust-lang/rust#158310 (Remove unexpected usage of Unambig in non-infer variants)
- rust-lang/rust#158671 (Move tests batch 17)
- rust-lang/rust#158730 (Update `FIXME(static_mut_refs)` comments)
- rust-lang/rust#158752 (Reorganize `tests/ui/issues` [18/N])
- rust-lang/rust#158755 (Use `ThinVec` more in the AST)
- rust-lang/rust#158757 (Fix incorrect tracking issue for `read_le`/`read_be`)
- rust-lang/rust#158765 (Fix ICE on non-ident path in `doc(auto_cfg values)`)
- rust-lang/rust#158771 (library: expand HashSet::extract_if coverage)
- rust-lang/rust#158772 (rustc-dev-guide subtree update)
- rust-lang/rust#158776 (fix: emit diagnostic for AVR target without target-cpu)
- rust-lang/rust#158786 (Add regression test for builtin attr macro values)
- rust-lang/rust#158810 (Add supplementary information for get_unchecked(mut))
- rust-lang/rust#158825 (Fix typo)
- rust-lang/rust#158838 (tidy: Use `empty_alternate = true` for triagebot mention glob check)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@nnethercote@rust-timer@rustbot@mejrs