Crater rollup - #162233
Draft
theemathas wants to merge 16 commits into
Draft
Conversation
…ons to be overlapping in some cases
This will allow e.g. `&[!]` to satisfy `&[T] where T: AsRef<str>`. It follows the recommendation from the never documentation: > When writing your own traits, `!` should have an `impl` whenever > there is an obvious `impl` which doesn’t `panic!`. -- <https://doc.rust-lang.org/1.97.1/std/primitive.never.html#-and-traits> The test tests/ui/impl-trait/generic-with-implicit-hrtb-without-dyn.rs had to be updated because it depended on this impl not existing. I’ve confirmed that the modified test still functions as a regression test by compiling it in nightly-2022-08-28 and seeing it ICE.
This adds a new compiler attribute that prevents non-local fundamental types from receiving implementations of marked traits. This allows addressing soundness problems with traits like DerefMut on Pin and similar wrapper types. The attribute is checked during the orphan check in coherence.
Mark Deref, DerefMut, DispatchFromDyn, CoerceUnsized, and Receiver with #[rustc_anti_fundamental] to prevent downstream crates from implementing these traits on #[fundamental] types like Box and Pin.
We marked DerefMut anti-fundamental, so the PinHelper indirection is no longer needed to prevent downstream users from implementing DerefMut on Pin.
Contributor
Author
|
@bors try |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Contributor
|
💔 Test for d30f5d2 failed: CI. Failed jobs:
|
Contributor
Author
|
@bors try |
This comment has been minimized.
This comment has been minimized.
Contributor
Contributor
Author
|
@craterbot check name=pr-162233-crater-rollup p=3 |
Collaborator
|
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
This was referenced Sep 3, 2026
Contributor
|
Genuine question: if crater runs are getting backed more frequently, should crater rollups just become part of the routine process? e.g., should we maybe start explicitly planning for them rather than just ad-hoc queueing things? |
Collaborator
|
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
r? ghost
Due to the long crater queue, I am making a crater rollup. 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: #160780, #160902, #161358, #161253, #161946, #160391, #161319