Skip to content

Crater rollup#157814

Draft
theemathas wants to merge 33 commits into
rust-lang:mainfrom
theemathas:crater-rollup
Draft

Crater rollup#157814
theemathas wants to merge 33 commits into
rust-lang:mainfrom
theemathas:crater-rollup

Conversation

@theemathas

@theemathas theemathas commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

r? ghost

Due to the long crater queue, I am making a crater rollup as per @fmease's suggestion. That is, I will run crater of all these PRs together at the same time. And then, once that is finished, I will rerun crater on each individual PR only on the crates that regressed in the result of this crater. This hopefully will speed up the crater process.

PRs in this rollup: #157082, #156749, #153721, #129249, #156977, #157576, #157562, #134021, #157696, #157710

RalfJung and others added 30 commits June 12, 2026 20:15
…t have a compiler output generated by the lint-docs script
When annotating an item with `#[cfg]` we track both the item that got annotated (with an inert attr) and the names of items that got directly cfg'd out. Extend this mechanism to also work for items within a `cfg_select!`.
Add two lints, very similar to `clippy::useless_conversion`, detecting
when `.into()` is being called unnecessarily. We present two separate
lints, one that triggers inside of macros, because it is common for
macros to have `.into()` calls to make the caller side easier to use. In
those cases people should still use the fully-qualified path instead,
but allow them to silence that lint without silencing the more general,
more likely to be problematic case.

This lint allows us to protect developers from the semver-hazard that
time 0.3.34 encountered, where a std change caused a valid method chain
to start producing inference errors. This is explicitly allowed by the
Rust project's backwards compatibility guarantees (inference is not
included in them), which means that relying on the blanket `impl Into`
is a problem.

The lint as implemented has false negatives: because of the way type
aliases are handled by the type system, we can't know whether
`let _: i32 = 0i32.into()` corresponds to a call on `i32` *or* a call on
a type alias that is `i32` only on some platforms (like `#[cfg(..)] type
Int = i32;`). To avoid false positives, we keep track of type aliases
that have been imported in the local crate and mark their types for
exclusion. This means that calling `let _: i32 = Int::into(0i32);` will
not be linted against even though it should.
Two things:

Since `dbg!` is changing, this removes parts of the file that assumed it
expands a certain way. The removed tests will no longer get the
"consider borrowing" messages going forward, but I think that's fine;
it's unlikely that someone would have hand-written them and the
suggestion could easily be wrong in the general case. If we want a more
general help message to suggest borrowing in those cases, I think it
should be designed as such from the ground up, not targeting `dbg!`.

From what I can tell, this test file was intended to be for the
"consider borrowing" help messages on diagnostics for `dbg!`. To make it
harder to accidentally mess with those messages, I've added checks for
them and some comments to clarify intent.
…>` and `[T; N]`

They'll be needed for `IntoIterator` impls.
Note: this removes warnings, as this breakage was deemed acceptable, see
<rust-lang#124108 (comment)>
rust-bors Bot pushed a commit that referenced this pull request Jun 12, 2026
@rust-bors

rust-bors Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

💔 Test for e431ece failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@theemathas

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 12, 2026
@theemathas

Copy link
Copy Markdown
Contributor Author

@bors try cancel

@rust-bors

rust-bors Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@theemathas

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 12, 2026
@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)
  IMAGE: x86_64-gnu-gcc
##[endgroup]
    Updating crates.io index
error: failed to get `simd-adler32` 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 (/home/runner/work/rust/rust/src/ci/citool)`

Caused by:
  failed to load source for dependency `simd-adler32`

Caused by:

@lqd

lqd commented Jun 12, 2026

Copy link
Copy Markdown
Member

Note to self: Later run @craterbot name=pr-157814-crater-rollup p=4

remember to also add some mode which is missing from the above: check or run-and-test and the likes

@rust-bors

rust-bors Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: f4690f2 (f4690f24e7d9bcb0b168a02b06dd61391e8bd55a, parent: 09a371361240e42b0d69438fd1179efcf212e576)

@theemathas

Copy link
Copy Markdown
Contributor Author

@craterbot check name=pr-157814-crater-rollup p=4

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-157814-crater-rollup created and queued.
🤖 Automatically detected try build f4690f2
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) S-waiting-on-crater Status: Waiting on a crater run to be completed. T-clippy Relevant to the Clippy team. 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. T-rustfmt Relevant to the rustfmt 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.