Skip to content

Rollup of 5 pull requests#151924

Merged
rust-bors[bot] merged 12 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-Pqp8PIn
Feb 1, 2026
Merged

Rollup of 5 pull requests#151924
rust-bors[bot] merged 12 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-Pqp8PIn

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

EFanZh and others added 12 commits December 27, 2025 12:29
…d-allocation-box-ref, r=petrochenkov

Skip unused_allocation lint when method takes &Box<Self>

Fixes rust-lang#151846
…shorthand-gate, r=JonathanBrouwer

Feature-gate `mut ref` patterns in struct pattern field shorthand

Tracking issue for `mut_ref` (and other parts of Match Ergonomics 2024): rust-lang#123076

rust-lang#123080 introduced `mut ref`[^1] patterns (for by-reference bindings where the binding itself is mutable), feature-gated behind the `mut_ref` feature, except for in struct pattern shorthand, where the feature gating was missing. Thus, `mut ref` patterns in struct pattern shorthand has been unintentionally stable for ~18 months (since 1.79.0 ([compiler explorer](https://rust.godbolt.org/z/4WTrvhboT))).

This PR adds feature-gating for `mut ref` patterns in struct pattern shorthand. Since this is reverting an accidental stabilization, this probably needs a crater run and a T-lang FCP?

Some alternative possibilities:

* Do nothing (let the inconsistency exist until `feature(mut_ref)` is stabilized)
* Document the existing behavior
* Do a FCW instead of fully feature-gating
* Stabilize `feature(mut_ref)`

CC rust-lang#123080 (comment)

CC @Nadrieril

[^1]: everything in this description also applies analogously to `mut ref mut` patterns.
Reorganizing `tests/ui/issues` 10 tests [4/N]

part of rust-lang#133895

r? Kivooeo
Re-export `hashbrown::hash_table` from `rustc_data_structures`

We don't always re-export shared dependencies, but for `hashbrown::hash_table` I think it makes sense, for a few reasons:

- The lower-level `HashTable` type is already part of the public API of `rustc_data_structures` via the `ShardedHashMap` type alias, and other compiler crates currently depend on being able to access its internal hash tables.
- The `Cargo.toml` entry for `hashbrown` is non-trivial, making it harder to keep in sync and harder to move between crates as needed.
  - [And we currently aren't using `[workspace.dependencies]` for various reasons.](rust-lang#146113)
- It's fine for other compiler crates to use `hash_table` specifically (with care), but they probably shouldn't be using the higher-level `hashbrown::HashMap` and `hashbrown::HashSet` types directly, because they should prefer the various map/set aliases defined by `rustc_data_structures`. Re-exporting only `hash_table` helps to discourage use of those other types.

There should be no change to compiler behaviour.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Jan 31, 2026
@rustbot rustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 31, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 31, 2026

📌 Commit d853e9e has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors bot 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 Jan 31, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 1, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 1, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 17m 17s
Pushing a1db344 to main...

@rust-bors rust-bors bot merged commit a1db344 into rust-lang:main Feb 1, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Feb 1, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150300 Constify fmt::from_fn 06baec690de03acc39cd955bfe3cd7702602ed2f (link)
#151102 Feature-gate mut ref patterns in struct pattern field sho… 29e56a8148d46f841fbe34a9983985751175e479 (link)
#151866 Reorganizing tests/ui/issues 10 tests [4/N] f745cbd9f6547da3e17a14a7ed518f41c6aa07d5 (link)
#151886 Skip unused_allocation lint when method takes &Box 1515fc9d390beef805cd7b2cee3f589086c1ca03 (link)
#151890 Re-export hashbrown::hash_table from `rustc_data_structur… 01d2fc8720cbca21d0ef6527b85b2882e6ef6888 (link)

previous master: 905b926967

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

github-actions bot commented Feb 1, 2026

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 905b926 (parent) -> a1db344 (this PR)

Test differences

Show 44 test diffs

Stage 1

  • [ui] tests/ui/associated-consts/associated-const-access.rs: [missing] -> pass (J1)
  • [ui] tests/ui/closures/nested-closure-escape-borrow.rs: [missing] -> pass (J1)
  • [ui] tests/ui/closures/unsized_value_move.rs: [missing] -> pass (J1)
  • [ui] tests/ui/deref/deref-in-for-loop.rs: [missing] -> pass (J1)
  • [ui] tests/ui/issues/issue-17651.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-18767.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-2848.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-2849.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-29740.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-3038.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-31267.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-32004.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-34569.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-49824.rs: pass -> [missing] (J1)
  • [ui] tests/ui/lint/unused/unused-allocation-box-ref-issue-151846.rs: [missing] -> pass (J1)
  • [ui] tests/ui/match/closure-in-match-guard.rs: [missing] -> pass (J1)
  • [ui] tests/ui/match/large-match-mir-gen.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/constructor-type-mismatch.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/multiple-bindings-on-var.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/or-pattern-binding-mismatch.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pattern/or-pattern-mismatched-variable-and-variant.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/associated-consts/associated-const-access.rs: [missing] -> pass (J0)
  • [ui] tests/ui/closures/nested-closure-escape-borrow.rs: [missing] -> pass (J0)
  • [ui] tests/ui/closures/unsized_value_move.rs: [missing] -> pass (J0)
  • [ui] tests/ui/deref/deref-in-for-loop.rs: [missing] -> pass (J0)
  • [ui] tests/ui/issues/issue-17651.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-18767.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-2848.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-2849.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-29740.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-3038.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-31267.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-32004.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-34569.rs: pass -> [missing] (J0)
  • [ui] tests/ui/issues/issue-49824.rs: pass -> [missing] (J0)
  • [ui] tests/ui/lint/unused/unused-allocation-box-ref-issue-151846.rs: [missing] -> pass (J0)
  • [ui] tests/ui/match/closure-in-match-guard.rs: [missing] -> pass (J0)
  • [ui] tests/ui/match/large-match-mir-gen.rs: [missing] -> pass (J0)
  • [ui] tests/ui/pattern/constructor-type-mismatch.rs: [missing] -> pass (J0)
  • [ui] tests/ui/pattern/multiple-bindings-on-var.rs: [missing] -> pass (J0)
  • [ui] tests/ui/pattern/or-pattern-binding-mismatch.rs: [missing] -> pass (J0)
  • [ui] tests/ui/pattern/or-pattern-mismatched-variable-and-variant.rs: [missing] -> pass (J0)

Additionally, 2 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard a1db344c0829cb682df4174e9370b60915751605 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. aarch64-apple: 7804.0s -> 10481.5s (+34.3%)
  2. pr-check-1: 1656.5s -> 1957.8s (+18.2%)
  3. x86_64-gnu-miri: 4476.8s -> 5212.5s (+16.4%)
  4. x86_64-gnu-tools: 3333.2s -> 3771.3s (+13.1%)
  5. x86_64-gnu-llvm-21-2: 5467.7s -> 6132.7s (+12.2%)
  6. x86_64-gnu-llvm-20-3: 6153.6s -> 6892.1s (+12.0%)
  7. x86_64-gnu-debug: 6819.4s -> 7601.9s (+11.5%)
  8. i686-gnu-nopt-1: 7369.9s -> 8200.3s (+11.3%)
  9. aarch64-gnu: 7124.8s -> 7882.6s (+10.6%)
  10. armhf-gnu: 4994.5s -> 5502.5s (+10.2%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (a1db344): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 1.3%)

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

mean range count
Regressions ❌
(primary)
5.3% [5.3%, 5.3%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.6% [-2.6%, -2.6%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.3% [-2.6%, 5.3%] 2

Cycles

Results (secondary -3.6%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.6% [-3.6%, -3.6%] 1
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 477.374s -> 476.042s (-0.28%)
Artifact size: 397.82 MiB -> 397.86 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants