Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Jan 3, 2026

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

estebank and others added 11 commits December 31, 2025 23:40
… a different crate version than expected

```
error[E0277]: `?` couldn't convert the error to `dependency::Error`
  --> replaced
   |
LL | fn main() -> Result<(), Error> {
   |              ----------------- expected `dependency::Error` because of this
...
LL |     Err(Error2)?;
   |     -----------^ the trait `From<Error2>` is not implemented for `dependency::Error`
   |     |
   |     this can't be annotated with `?` because it has type `Result<_, Error2>`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
help: the trait `From<Error2>` is not implemented for `dependency::Error`
      but trait `From<()>` is implemented for it
  --> replaced
   |
LL | impl From<()> for Error {
   | ^^^^^^^^^^^^^^^^^^^^^^^
   = help: for that trait implementation, expected `()`, found `Error2`
   = note: there are multiple different versions of crate `dependency` in the dependency graph
   = help: you can use `cargo tree` to explore your dependency tree
```

The existing checks rely on having access to the actual types/traits that diverged to detect they are called the same, come from different crates with the same name. The new check is less specific, merely looking to see if the crate name the involved type belongs has multiple crates.
The `forbid_generic` field in `Res::SelfTyAlias` is no longer needed.
The check for generic `Self` types in anonymous constants is now handled
by `check_param_uses_if_mcg` in HIR type lowering, making this field
redundant.

This removes:
- The `forbid_generic` field from `Res::SelfTyAlias`
- The hack in `rustc_resolve` that set `forbid_generic: true` when
encountering `Self` in constant items
- Related pattern matching and field propagation code
…jieyouxu

Detect cases where `?` is applied on a type that could be coming from a different crate version than expected

```
error[E0277]: `?` couldn't convert the error to `dependency::Error`
  --> replaced
   |
LL | fn main() -> Result<(), Error> {
   |              ----------------- expected `dependency::Error` because of this
...
LL |     Err(Error2)?;
   |     -----------^ the trait `From<Error2>` is not implemented for `dependency::Error`
   |     |
   |     this can't be annotated with `?` because it has type `Result<_, Error2>`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
help: the trait `From<Error2>` is not implemented for `dependency::Error`
      but trait `From<()>` is implemented for it
  --> replaced
   |
LL | impl From<()> for Error {
   | ^^^^^^^^^^^^^^^^^^^^^^^
   = help: for that trait implementation, expected `()`, found `Error2`
   = note: there are multiple different versions of crate `dependency` in the dependency graph
   = help: you can use `cargo tree` to explore your dependency tree
```

The existing checks rely on having access to the actual types/traits that diverged to detect they are called the same, come from different crates with the same name. The new check is less specific, merely looking to see if the crate name the involved type belongs has multiple crates.

CC rust-lang#78552.
Removed confusing diagnostics note for trait required for `?` operator use

- **test: modified `bad-question-mark-on-trait-objects` to match expected behavior**
- **removed confusing message from diagnostics**

fixes [rust-lang#150527](rust-lang#150527)
…neric-field, r=camelid,BoxyUwU

Remove unneeded `forbid_generic` field from `Res::SelfTyAlias`

Following rust-lang#150519, the `forbid_generic` field in `Res::SelfTyAlias` is no longer needed and can be removed.

- Remove the `forbid_generic: bool` field from `Res::SelfTyAlias`
- Simplify the ConstantItem rib handling in `rustc_resolve` - no longer need to mutate res to set `forbid_generic: true`
- Update all pattern matches and constructors of `SelfTyAlias`

Closes rust-lang#150579

r? ``@camelid``
…n, r=jieyouxu

triagebot: Add a mention for `dec2flt`, `flt2dec`, and `fmt/num.rs`
…Kobzol

Fix broken edit links in Unstable and rustc books

Updated the edit-url-template for the unstable book and the rustc book.

Fixes rust-lang#150593

The "Suggest an edit" links were pointing to HEAD, which resulted in a 404. Changed these to point to main.

r? `@Kobzol`
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs 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. rollup A PR which is a rollup labels Jan 3, 2026
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Jan 3, 2026

📌 Commit 689e74d has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors 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 3, 2026
@bors
Copy link
Collaborator

bors commented Jan 3, 2026

⌛ Testing commit 689e74d with merge 4c3310a...

@bors
Copy link
Collaborator

bors commented Jan 3, 2026

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 4c3310a to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jan 3, 2026
@bors bors merged commit 4c3310a into rust-lang:main Jan 3, 2026
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Jan 3, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150558 Detect cases where ? is applied on a type that could be c… 2a8341c8664e6429155d4f09f07ac0c31596205a (link)
#150570 Removed confusing diagnostics note for trait required for `… 2402fa1d99d79db0aadd5162ff3f4c59f27ca4a6 (link)
#150589 Remove unneeded forbid_generic field from `Res::SelfTyAli… 863f1dcded0cd529aa7362e5492fda605cba84b0 (link)
#150635 triagebot: Add a mention for dec2flt, flt2dec, and `fmt… 171465710faf32a69b41c5979bc68c0dbb6c7fa8 (link)
#150637 Fix broken edit links in Unstable and rustc books 2419dc538d520b2ca335b3e4fbc9f9e803f33b61 (link)

previous master: 00f49d2204

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 Jan 3, 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 00f49d2 (parent) -> 4c3310a (this PR)

Test differences

Show 14 test diffs

14 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 4c3310a6db02750ff0cfd0def09dd05c5942d723 --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. test-various: 6930.1s -> 7857.1s (+13.4%)
  2. x86_64-gnu-llvm-20: 4156.8s -> 4648.7s (+11.8%)
  3. aarch64-apple: 8517.8s -> 9422.5s (+10.6%)
  4. dist-aarch64-apple: 6279.3s -> 6826.2s (+8.7%)
  5. dist-aarch64-llvm-mingw: 6594.4s -> 6026.7s (-8.6%)
  6. aarch64-gnu-llvm-20-1: 4070.3s -> 3724.6s (-8.5%)
  7. dist-apple-various: 4285.0s -> 3935.0s (-8.2%)
  8. x86_64-gnu-llvm-20-2: 5941.8s -> 5461.1s (-8.1%)
  9. aarch64-gnu-llvm-20-2: 3076.5s -> 2872.2s (-6.6%)
  10. dist-armhf-linux: 5085.4s -> 4763.2s (-6.3%)
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 (4c3310a): 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 (secondary -2.9%)

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

Binary size

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

Bootstrap: 472.503s -> 474.071s (0.33%)
Artifact size: 390.81 MiB -> 390.82 MiB (0.00%)

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

Labels

A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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.

9 participants