Skip to content

Conversation

@Zalathar
Copy link
Member

Successful merges:

r? @ghost

Create a similar rollup

Zalathar and others added 11 commits January 14, 2026 18:10
But still keep it report-in-deps.

To revert after ~February 27 2026, when Rust 1.95 branches out from the main branch.
include `HirId`s directly in the THIR, not wrapped in `LintLevel`s

Occurrences of `LintLevel` in the THIR were always `LintLevel::Explicit`, containing a `HirId`, so we don't need to make it possible to put `LintLevel::Inherited` there. Removing the unused case where `HirId`s aren't present in the THIR slightly simplifies diagnostics/lints/tools that want to map from the THIR back to the HIR, e.g. rust-lang#145569.

Since `LintLevel` is no longer present in the THIR, I've moved it in the second commit to live in `rustc_mir_build`; that's where it's actually used. I'm not sure exactly where exactly it should live there, but I put it in the `builder::scope` module since it's used by `Builder::in_scope` for determining when to introduce source scopes.

r? lcnr as the reviewer of rust-lang#145569, since this was discussed there
Avoid ICEs after bad patterns, for the other syntactic variants

This PR introduces changes equivalent to the ones in rust-lang#126320, but also for struct and tuple patterns, instead of tuple struct patterns only.

Fixes rust-lang#150507.
…enkov

mir_build: Simplify length-determination and indexing for array/slice patterns

The existing length-determination code in `prefix_slice_suffix` has ended up overly complicated, partly because it doesn't know in advance whether the pattern is supposed to be an array pattern or a slice pattern.

Pulling most of that step out into the `PatKind::Array` arm makes the whole thing a bit nicer overall.

There should (hopefully) be no change to compiler output. The biggest “functional” change is that we now discard the subpatterns of an array pattern of unknowable length, instead of treating it as a slice pattern. I'm not aware of any way for this to make an observable difference, and it can only occur when compilation is already doomed to fail.
resolve: Downgrade `ambiguous_glob_imports` to warn-by-default

But still keep it report-in-deps, as decided in rust-lang#149845 (comment).

This will need to be reverted after ~February 27 2026, when Rust 1.95 branches out from the main branch.

Closes rust-lang#149845.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Jan 15, 2026
@rustbot rustbot added 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. labels Jan 15, 2026
@Zalathar
Copy link
Member Author

Rollup of everything.

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

📌 Commit 2567226 has been approved by Zalathar

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 15, 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 Jan 15, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 15, 2026

☀️ Test successful - CI
Approved by: Zalathar
Pushing 7704328 to main...

@rust-bors rust-bors bot merged commit 7704328 into rust-lang:main Jan 15, 2026
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Jan 15, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150846 include HirIds directly in the THIR, not wrapped in `Lint… 35e3c1c7d1e34c6b5eb07dab12ee5dd2eb541a47 (link)
#150979 Avoid ICEs after bad patterns, for the other syntactic vari… b39f74f900480b12f103cebf45a159a655d00046 (link)
#151103 mir_build: Simplify length-determination and indexing for a… 5b40bc0618e79f891f1899e97c44c007912ba476 (link)
#151130 resolve: Downgrade ambiguous_glob_imports to warn-by-defa… d53ee8c1d31d72ea6af5580a8f098af1258b2cad (link)

previous master: a6acf0f07f

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

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 a6acf0f (parent) -> 7704328 (this PR)

Test differences

Show 52 test diffs

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

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 7704328ba5ae8d6ce0ac303c9d5a1a1605906766 --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. dist-apple-various: 3136.7s -> 4368.7s (+39.3%)
  2. aarch64-apple: 9587.8s -> 12780.4s (+33.3%)
  3. arm-android: 5312.3s -> 6407.4s (+20.6%)
  4. dist-i586-gnu-i586-i686-musl: 4789.1s -> 5531.2s (+15.5%)
  5. x86_64-gnu-gcc: 3013.7s -> 3473.3s (+15.3%)
  6. x86_64-rust-for-linux: 2665.9s -> 3059.8s (+14.8%)
  7. armhf-gnu: 4822.9s -> 5508.0s (+14.2%)
  8. pr-check-1: 1690.6s -> 1910.9s (+13.0%)
  9. x86_64-gnu: 7430.3s -> 8377.5s (+12.7%)
  10. x86_64-gnu-tools: 3403.7s -> 3739.5s (+9.9%)
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 (7704328): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

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

Cycles

Results (primary -2.5%, secondary 2.7%)

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)
2.7% [2.6%, 2.9%] 2
Improvements ✅
(primary)
-2.5% [-2.5%, -2.5%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.5% [-2.5%, -2.5%] 1

Binary size

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

Bootstrap: 473.873s -> 471.886s (-0.42%)
Artifact size: 383.59 MiB -> 383.58 MiB (-0.00%)

@Zalathar Zalathar deleted the rollup-okXJcXA branch January 15, 2026 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants