Skip to content

Rollup of 15 pull requests#158455

Merged
rust-bors[bot] merged 50 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-3fPbHms
Jun 27, 2026
Merged

Rollup of 15 pull requests#158455
rust-bors[bot] merged 50 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-3fPbHms

Conversation

@JonathanBrouwer

@JonathanBrouwer JonathanBrouwer commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

xmakro and others added 30 commits June 20, 2026 11:38
Instead of having to taint both infcx and root_cx, we always just taint infcx (which usually gets automatically tainted from emitting diagnostics), and at the end (before dropping the infcx) we move the taint over to the root_cx
convert `FfiPureParser` to a full `AttributeParser` so its `finalize`
can check for a sibling `#[ffi_const]` and reject `#[ffi_pure]` during
attribute parsing, replacing `check_ffi_pure` in `rustc_passes`.
The parser suggests replacing `=>` with `>=` when it looks like a typo
in a comparison, but it skipped the suggestion whenever a comma was an
expected token. That excluded closure bodies used as call arguments,
such as `iter.position(|x| x => &y)`, which is the case in rust-lang#149805.

The comma exclusion was there to avoid suggesting `>=` for a missing
comma between match arms, where `=>` is a real arm arrow. Those cases
have a close brace in the expected token set, while the comparison
cases do not, so gate on the close brace instead of the comma.

Fixes rust-lang#149805
…rbid`

* Added documentation for allow, cfg, deny, forbid, deprecated and warn attribute

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* address review feedback

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* address review feedback

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* address review feedback

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* address feedback

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* add the right deprecated link

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* add the right deprecated link

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* fix typo

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* fix phrasing

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* fix phrasing

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* address feedback

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* address feedback and add link to rustc book

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
* address feedback

Signed-off-by: Emmanuel Ugwu <emmanuelugwu121@gmail.com>
And while I'm here, improve the tests to check that the unaligned ones are actually unaligned, since `unaligned_volatile_load::<u8>` doesn't actually test anything.
And remove redundant const fn
- const, async, and unsafe functions
- const generics, complex types, and where clauses (including impl Tuple)
@rust-bors

rust-bors Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 75395eb failed: CI. Failed job:

@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

@bors retry

@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 Jun 26, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 26, 2026
…uwer

Rollup of 15 pull requests

Successful merges:

 - #153697 (Add arg splat experiment initial tuple impl)
 - #158360 (Various borrowck cleanups and param_env/opaque_types_defined_by query simplifications for typeck children)
 - #158438 (Use rigidness marker in fast_reject)
 - #157127 (cg_LLVM: Stop needing an alloca for volatile loads)
 - #158376 (Suggest `>=` for `=>` typo in closure and call argument positions)
 - #158185 (perf: Make stable_crate_ids reads lock-free after crate loading)
 - #158244 (Attribute docs `deprecated` , `warn`, `allow`, `cfg`, `deny`, and `forbid` )
 - #158355 (Fixup the refactoring errors in #156246)
 - #158361 (Move `check_ffi_pure` into the attribute parser)
 - #158382 (Add safety section for SliceIndex::get_unchecked(mut))
 - #158399 (std: truncate thread names on NetBSD)
 - #158418 (Eliminate double length check in `Vec::into_array`)
 - #158430 (Guard clone suggestion against empty obligation errors)
 - #158446 (Update Enzyme submodule)
 - #158448 (Cleanup `NumBuffer` comment and replace `ilog(10)` with `ilog10()`)
@jhpratt

jhpratt commented Jun 26, 2026

Copy link
Copy Markdown
Member

I think it's reasonable to say a point release is more important than a rollup

@bors yield

@rust-bors

rust-bors Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Auto build was cancelled. Cancelled workflows:

The next pull request likely to be tested is #158331.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
  WIX: /d/a/rust/rust/wix
##[endgroup]
    Updating crates.io index
error: failed to get `adler2` as a dependency of package `miniz_oxide v0.8.8`
    ... which satisfies dependency `miniz_oxide = "^0.8.5"` of package `flate2 v1.1.9`
    ... which satisfies dependency `flate2 = "^1.1.9"` of package `citool v0.1.0 (D:\a\rust\rust\src\ci\citool)`

Caused by:
  failed to load source for dependency `adler2`

Caused by:
  unable to update registry `crates-io`

Caused by:
  download of ad/le/adler2 failed

Caused by:
  curl failed

Caused by:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
  TOOLSTATE_PUBLISH: 1
  IMAGE: x86_64-gnu-gcc
##[endgroup]
    Updating crates.io index
error: failed to get `ring` as a dependency of package `rustls v0.23.23`
    ... which satisfies dependency `rustls = "^0.23.22"` of package `ureq v3.0.8`
    ... which satisfies dependency `ureq = "^3"` of package `citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)`

Caused by:
  failed to load source for dependency `ring`

Caused by:
  unable to update registry `crates-io`

Caused by:
  download of ri/ng/ring failed

Caused by:
  curl failed

Caused by:

@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jun 26, 2026
@rust-bors

rust-bors Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

💔 Test for b8f8eb2 failed: CI. Failed job:

@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 Jun 27, 2026
@rust-bors

rust-bors Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 15m 2s
Pushing 1676160 to main...

@rust-bors rust-bors Bot merged commit 1676160 into rust-lang:main Jun 27, 2026
14 of 15 checks passed
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jun 27, 2026
@rustbot rustbot added this to the 1.98.0 milestone Jun 27, 2026
@github-actions

Copy link
Copy Markdown
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 ce9954c (parent) -> 1676160 (this PR)

Test differences

Show 576 test diffs

Stage 1

  • [ui] tests/ui/moves/unconstrained-impl-param-clone-suggestion.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-255-limit-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-255-limit-pass.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-assoc-fn-tuple-simple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-async-fn-tuple-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-async-fn-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-cannot-resolve.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-const-fn-tuple-generic.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-const-fn-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-dyn-asref-tuple-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-fn-ptr-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-fn-tuple-generic-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-fn-tuple-generic.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-fn-tuple-simple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-generics-complex-types.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-generics-everywhere.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-generics-inside-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-invalid-trait-impl.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-maybe-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-method-tuple-simple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-non-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-overload-at-home-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-overload-at-home.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-trait-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-unsafe-fn-tuple-fail.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-unsafe-fn-tuple.rs: [missing] -> pass (J1)
  • [ui] tests/ui/splat/splat-where-clause.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/moves/unconstrained-impl-param-clone-suggestion.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-255-limit-fail.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-255-limit-pass.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-assoc-fn-tuple-simple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-async-fn-tuple-fail.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-async-fn-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-cannot-resolve.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-const-fn-tuple-generic.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-const-fn-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-dyn-asref-tuple-fail.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-fn-ptr-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-fn-tuple-generic-fail.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-fn-tuple-generic.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-fn-tuple-simple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-generics-complex-types.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-generics-everywhere.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-generics-inside-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-invalid-trait-impl.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-maybe-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-method-tuple-simple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-non-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-overload-at-home-fail.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-overload-at-home.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-trait-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-unsafe-fn-tuple-fail.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-unsafe-fn-tuple.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/splat/splat-where-clause.rs: [missing] -> pass (J2)
  • mem::fn_ptr::test_not_splat: [missing] -> pass (J4)
  • mem::fn_ptr::test_splat: [missing] -> pass (J4)

Stage 2

  • [ui] tests/ui/moves/unconstrained-impl-param-clone-suggestion.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-255-limit-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-255-limit-pass.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-assoc-fn-tuple-simple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-async-fn-tuple-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-async-fn-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-cannot-resolve.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-const-fn-tuple-generic.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-const-fn-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-dyn-asref-tuple-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-fn-ptr-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-fn-tuple-generic-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-fn-tuple-generic.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-fn-tuple-simple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-generics-complex-types.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-generics-everywhere.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-generics-inside-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-invalid-trait-impl.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-maybe-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-method-tuple-simple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-non-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-overload-at-home-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-overload-at-home.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-trait-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-unsafe-fn-tuple-fail.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-unsafe-fn-tuple.rs: [missing] -> pass (J0)
  • [ui] tests/ui/splat/splat-where-clause.rs: [missing] -> pass (J0)
  • mem::fn_ptr::test_not_splat: [missing] -> pass (J3)
  • mem::fn_ptr::test_splat: [missing] -> pass (J3)

Additionally, 491 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 16761606d606b6ec4d0c88fc9251670742ad9fd2 --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. x86_64-gnu-gcc-core-tests: 8m 20s -> 14m 34s (+74.7%)
  2. x86_64-gnu-distcheck: 1h 26m -> 2h 25m (+69.2%)
  3. dist-riscv64-linux: 58m 2s -> 1h 30m (+55.4%)
  4. dist-various-2: 28m 10s -> 41m 53s (+48.7%)
  5. dist-arm-linux-musl: 1h 37m -> 1h 4m (-34.4%)
  6. x86_64-gnu-llvm-21-1: 51m 7s -> 34m 2s (-33.4%)
  7. x86_64-gnu-llvm-21-2: 1h 13m -> 1h 38m (+32.7%)
  8. x86_64-msvc-2: 1h 48m -> 2h 22m (+30.6%)
  9. aarch64-apple: 2h 28m -> 3h 9m (+27.0%)
  10. x86_64-msvc-ext3: 1h 48m -> 1h 21m (-24.8%)
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
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#153697 Add arg splat experiment initial tuple impl 821e291cfca36f7a6623aa508757bd1825ae782e (link)
#157127 cg_LLVM: Stop needing an alloca for volatile loads 00f6497281ea7a99d8ae42eece49b71b95a09ba2 (link)
#158185 perf: Make stable_crate_ids reads lock-free after crate loa… 9087db25c904c2274c31c4963b8a0360ea5a8d2a (link)
#158244 Attribute docs deprecated , warn, allow, cfg, `deny… f9f3a0d958b43382347b630eed589284feaae591 (link)
#158355 Fixup the refactoring errors in #156246 4c0e1d63c2d9e8a6a26825f3abd61d614632f098 (link)
#158360 Various borrowck cleanups and param_env/opaque_types_define… 6c2bd6bb7c6db8fe8d11dcc563f751a85fe3ab81 (link)
#158361 Move check_ffi_pure into the attribute parser f7886b29c8aba4420920fbd2e7261a5c1e142ffb (link)
#158376 Suggest >= for => typo in closure and call argument pos… 5ad79f7079b56750f4bdb9ab1f447aeb3c725e2c (link)
#158382 Add safety section for SliceIndex::get_unchecked(mut) 76a2d3c2b2320315f80245e99bd5318d67f21efe (link)
#158399 std: truncate thread names on NetBSD c8b9debddbf539daadd80a3215f6a118bb0e4757 (link)
#158418 Eliminate double length check in Vec::into_array 69a7b431b9d4acf64a183bff29bd46f86a08f87b (link)
#158430 Guard clone suggestion against empty obligation errors 5b3515fbffe298802bfb238429611241592e42e9 (link)
#158438 Use rigidness marker in fast_reject 906f76d677abc9c226a354de419641798ca665ff (link)
#158446 Update Enzyme submodule 9a89ab32acbfaa82949171c8bec3f2fa23c263f9 (link)
#158448 Cleanup NumBuffer comment and replace ilog(10) with `il… 99e2817acf00a8fd97e78e7383d582bd5c0ce157 (link)

previous master: ce9954c0cf

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

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (1676160): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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.1% [0.1%, 0.1%] 2
Regressions ❌
(secondary)
0.2% [0.1%, 0.2%] 6
Improvements ✅
(primary)
-0.2% [-0.2%, -0.2%] 1
Improvements ✅
(secondary)
-0.3% [-0.5%, -0.2%] 8
All ❌✅ (primary) 0.0% [-0.2%, 0.1%] 3

Max RSS (memory usage)

Results (primary -2.3%, secondary 0.8%)

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)
7.5% [7.0%, 8.1%] 2
Improvements ✅
(primary)
-2.3% [-2.3%, -2.3%] 1
Improvements ✅
(secondary)
-2.6% [-3.7%, -2.2%] 4
All ❌✅ (primary) -2.3% [-2.3%, -2.3%] 1

Cycles

Results (secondary 0.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)
4.9% [2.3%, 9.4%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.5% [-9.6%, -1.4%] 5
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%, secondary 0.1%)

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

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 53
Regressions ❌
(secondary)
0.1% [0.0%, 0.3%] 57
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.1%] 53

Bootstrap: 486.597s -> 489.966s (0.69%)
Artifact size: 395.64 MiB -> 393.65 MiB (-0.50%)

@rustbot rustbot added the perf-regression Performance regression. label Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. 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. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.