remove support for extern-block const intrinsics#132492
Merged
bors merged 5 commits intorust-lang:masterfrom Nov 5, 2024
Merged
remove support for extern-block const intrinsics#132492bors merged 5 commits intorust-lang:masterfrom
bors merged 5 commits intorust-lang:masterfrom
Conversation
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.
This converts all const-callable intrinsics into the "new" form of a regular
fnwith#[rustc_intrinsic]attribute. That simplifies some of the logic since those functions can be markedconst fnlike regular functions, so intrinsics no longer need a special case to be considered const-callable at all.I also added a new attribute
#[rustc_const_stable_intrinsic]to mark an intrinsic as being ready to be exposed on stable. Previously we used the#[rustc_const_stable_indirect]attribute for that, but that attribute had a dual role -- when used on a regular function, it is an entirely safe marker to make this function part of recursive const stability, but on an intrinsic it is a trusted marker requiring special care. It's not great for the same attribute to be sometimes fully checked and safe, and sometimes trusted and requiring special care, so I split this into two attributes.This also fixes #122652 by accepting intrinsics as const-stable if they have a fallback body that is recursively const-stable.
The library changes are best reviewed with whitespace hidden.
r? @compiler-errors