feat(lint): Add conditional_no_std_attribute lint#16971
Open
bushrat011899 wants to merge 1 commit intorust-lang:masterfrom
Open
feat(lint): Add conditional_no_std_attribute lint#16971bushrat011899 wants to merge 1 commit intorust-lang:masterfrom
conditional_no_std_attribute lint#16971bushrat011899 wants to merge 1 commit intorust-lang:masterfrom
Conversation
Collaborator
|
r? @dswij rustbot has assigned @dswij. Use Why was this reviewer chosen?The reviewer was selected based on:
|
6a5603d to
9e7df92
Compare
|
Lintcheck changes for cc4638b
This comment will be updated if you push new changes |
Gri-ffin
reviewed
May 7, 2026
Gri-ffin
reviewed
May 7, 2026
9e7df92 to
cc4638b
Compare
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.
Objective
#![no_std]but aren't #1569Details
This adds a lint which discourages usage of
cfg_attrwithno_std. This is usually bad because it changes the implicit prelude across the crate, making it trivial to fall into a trap where either you are warned for redundant imports, or fail to compile because of missing ones. The lint will suggest replacing:#![cfg_attr(some_arbitrary_condition, ..., no_std, ...)]With:
Notes
extern cratestatement between inner attributes). I have marked it asApplicability::MaybeIncorrectto reflect this.cfg_attrstatement will be removed entirely if the only attribute within it isno_std.#![no_std]was stabilised in), as crates supporting older versions of Rust may usecfg_attrto addno_stdsupport without raising MSRV.changelog: [
conditional_no_std_attribute]: add new lint for conditional inclusion of#![no_std]attribute