Skip to content

Conversation

@matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost

Create a similar rollup

Zalathar and others added 30 commits January 20, 2026 13:41
This updates the rust-version file to 63f4513.
This updates the rust-version file to d276646.
Compile-time variant of shim_sig_arg
This updates the rust-version file to d10ac47.
…losedir

Add test for libc opendir and closedir
update .gitignore to ignore zed files
Unify  readdir across Unix targets and add test
RalfJung and others added 6 commits January 24, 2026 11:19
readdir: also emit the special directory entries . and ..
windows shims: throw unsupported error for DuplicateHandle on pseudo handle
…e,ytmimi

`const` blocks as a `mod` item

Tracking issue: rust-lang#149226

This adds support for writing `const { ... }` as an item in a module. In the current implementation, this is a unique AST item that gets lowered to `const _: () = const { ... };` in HIR.

rustfmt support included.

TODO:
- `pub const { ... }` does not make sense (see rust-lang#147136). Reject it. Should this be rejected by the parser or smth?
- Improve diagnostics (preferably they should not mention the fake `_` ident).
THIR patterns: Explicitly distinguish `&pin` from plain `&`/`&mut`

Currently, `thir::PatKind::Deref` is used for ordinary `&`/`&mut` patterns, and also for `&pin const` and `&pin mut` patterns under `feature(pin_ergonomics)`. The only way to distinguish between them is by inspecting the `Ty` attached to the pattern node.

That's non-obvious, making it easy to miss, and is also a bit confusing to read when it does occur.

This PR therefore adds an explicit `pin: hir::Pinnedness` field to `thir::PatKind::Deref`, to explicitly distinguish pin-deref nodes from ordinary builtin-deref nodes.

(I'm not deeply familiar with the future of pin-patterns, so I'm not sure whether that information is best carried as a field or as a separate `PatKind`, but I think this approach is at least an improvement over the status quo.)

r? Nadrieril (or compiler)
…nn,jonathanbrouwer

Do not emit errors on non-metaitem diagnostic attr input

This unblocks porting over diagnostic attributes by properly addressing rust-lang#151056 (comment)

r? @JonathanBrouwer
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Jan 24, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. labels Jan 24, 2026
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 24, 2026

📌 Commit ac8e7f2 has been approved by matthiaskrgr

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

rust-bors bot commented Jan 24, 2026

☀️ Test successful - CI
Approved by: matthiaskrgr
Duration: 3h 13m 21s
Pushing 021fc25 to main...

@rust-bors rust-bors bot merged commit 021fc25 into rust-lang:main Jan 24, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Jan 24, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#149174 const blocks as a mod item 1d09b1dc7f381509b4a07e9e6ff20bccfc0f6fce (link)
#151282 THIR patterns: Explicitly distinguish &pin from plain & 6ff26de686ad88a27c74edb8b4267d8b7fc2820b (link)
#151516 Do not emit errors on non-metaitem diagnostic attr input 5d666fd7ac534707cf58e74050a95a5674a1eb23 (link)
#151593 miri subtree update 9fbb9471960a2a3e83d890d03c996f1593ad5635 (link)

previous master: a18e6d9d14

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 a18e6d9 (parent) -> 021fc25 (this PR)

Test differences

Show 112 test diffs

Stage 1

  • [ui] tests/ui/consts/const-block-item-macro-codegen.rs: pass -> [missing] (J1)
  • [ui] tests/ui/consts/const-block-item.rs: pass -> [missing] (J1)
  • [ui] tests/ui/consts/const-block-items/assert-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/consts/const-block-items/assert-pass.rs: [missing] -> pass (J1)
  • [ui] tests/ui/consts/const-block-items/hir.rs: [missing] -> pass (J1)
  • [ui] tests/ui/consts/const-block-items/typecheck.rs: [missing] -> pass (J1)
  • [ui] tests/ui/consts/const-item-with-block-body/macro-codegen.rs: [missing] -> pass (J1)
  • [ui] tests/ui/consts/const-item-with-block-body/static.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-const-block-items.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/const-block-items/attrs.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/const-block-items/inner-attr.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/const-block-items/macro-item.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/const-block-items/macro-stmt.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/const-block-items/mod-in-fn.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/const-block-items/pub.rs: [missing] -> pass (J1)
  • [ui] tests/ui/parser/const-block-items/unsafe.rs: [missing] -> pass (J1)
  • [ui] tests/ui/pin-ergonomics/user-type-projection.rs: [missing] -> pass (J1)

Stage 2

  • [ui] tests/ui/consts/const-block-item-macro-codegen.rs: pass -> [missing] (J0)
  • [ui] tests/ui/consts/const-block-item.rs: pass -> [missing] (J0)
  • [ui] tests/ui/consts/const-block-items/assert-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/consts/const-block-items/assert-pass.rs: [missing] -> pass (J0)
  • [ui] tests/ui/consts/const-block-items/hir.rs: [missing] -> pass (J0)
  • [ui] tests/ui/consts/const-block-items/typecheck.rs: [missing] -> pass (J0)
  • [ui] tests/ui/consts/const-item-with-block-body/macro-codegen.rs: [missing] -> pass (J0)
  • [ui] tests/ui/consts/const-item-with-block-body/static.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-const-block-items.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/const-block-items/attrs.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/const-block-items/inner-attr.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/const-block-items/macro-item.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/const-block-items/macro-stmt.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/const-block-items/mod-in-fn.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/const-block-items/pub.rs: [missing] -> pass (J0)
  • [ui] tests/ui/parser/const-block-items/unsafe.rs: [missing] -> pass (J0)
  • [ui] tests/ui/pin-ergonomics/user-type-projection.rs: [missing] -> pass (J0)

Additionally, 78 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 021fc25b7a48f6051bee1e1f06c7a277e4de1cc9 --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-aarch64-apple: 8977.8s -> 6437.3s (-28.3%)
  2. pr-check-1: 1521.9s -> 1925.8s (+26.5%)
  3. aarch64-apple: 8283.3s -> 9834.6s (+18.7%)
  4. i686-gnu-nopt-1: 7042.7s -> 8277.5s (+17.5%)
  5. x86_64-gnu-llvm-21-3: 5979.5s -> 6841.4s (+14.4%)
  6. aarch64-gnu-debug: 3935.6s -> 4449.2s (+13.1%)
  7. pr-check-2: 2253.8s -> 2503.5s (+11.1%)
  8. aarch64-gnu-llvm-20-2: 2706.7s -> 3001.5s (+10.9%)
  9. x86_64-rust-for-linux: 2789.6s -> 3093.0s (+10.9%)
  10. i686-msvc-2: 7227.9s -> 7999.2s (+10.7%)
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 (021fc25): 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 -2.6%, secondary 6.5%)

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

Cycles

Results (primary 0.7%, secondary 3.3%)

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

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

Binary size

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

Bootstrap: 469.207s -> 472.296s (0.66%)
Artifact size: 383.51 MiB -> 383.54 MiB (0.01%)

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants