Error when an arg to #[allow_internal_unstable] is a key-value#155787
Closed
scrabsha wants to merge 2 commits intorust-lang:mainfrom
Closed
Error when an arg to #[allow_internal_unstable] is a key-value#155787scrabsha wants to merge 2 commits intorust-lang:mainfrom
#[allow_internal_unstable] is a key-value#155787scrabsha wants to merge 2 commits intorust-lang:mainfrom
Conversation
mejrs
reviewed
Apr 25, 2026
| if let Some(ident) = param.meta_item().and_then(|i| i.path().word()) { | ||
| res.push(ident.name); | ||
| } else { | ||
| let fail = || { |
Contributor
There was a problem hiding this comment.
You could do something like this:
rust/compiler/rustc_attr_parsing/src/attributes/diagnostic/mod.rs
Lines 238 to 261 in fb76025
Contributor
Author
There was a problem hiding this comment.
(||{ Some($($code)*) })()
... wow
Contributor
There was a problem hiding this comment.
... wow
A poor man's try block 😢
Contributor
|
This problem is already fixed by my pr: #155193 |
Contributor
Author
|
oof, you have been more thorough than me hehe. closing my PR then - good luck for 155193 😭 |
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.
It looks like we don't check that the features passed to
#[allow_internal_unstable]are "just features" (as in, with no arguments). This means the following compiles:Playground link
This PR makes it an error to pass anything other than an identifier as argument to
#[allow_internal_unstable]. I believe it is ok to make it an error (and technically breaking some code) becauseallow_internal_unstableis an internal feature, which (quotingrustc's output) is internal to the compiler or standard library. Happy to change to a warning if my assumption is wrong though :)Discovered while writing the followup of #155696.