- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
          rustdoc: Gate unstable doc(cfg()) predicates
          #138293
        
          New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
    
                
     Merged
            
            
          Conversation
  
    
      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
    
  
  
    
    | r? @notriddle rustbot has assigned @notriddle. Use  | 
              
                    Urgau
  
              
              reviewed
              
                  
                    Mar 10, 2025 
                  
              
              
            
            
d2b27a0    to
    28bd22c      
    Compare
  
    
      
        
              This comment has been minimized.
        
        
      
    
  This comment has been minimized.
d2c53b7    to
    85b1116      
    Compare
  
    
  This was referenced Mar 17, 2025 
      
| I’ve been getting unexpected work, and not very familiar with this code anyway. | 
              
                    GuillaumeGomez
  
              
              approved these changes
              
                  
                    Mar 22, 2025 
                  
              
              
            
            
| Thanks! @bors r+ rollup | 
    
  jieyouxu 
      added a commit
        to jieyouxu/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…eGomez rustdoc: Gate unstable `doc(cfg())` predicates Fixes rust-lang#138113 Since the extraction process treats `cfg(true)` as having no cfg attribute, we have to do the gating during parsing; so we remove the unused `features` arg from `Cfg::matches`
  This was referenced Mar 23, 2025 
      
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
Rollup of 9 pull requests Successful merges: - rust-lang#138236 (uefi: Add OwnedEvent abstraction) - rust-lang#138293 (rustdoc: Gate unstable `doc(cfg())` predicates) - rust-lang#138509 (Add test to ensure no index out of bounds panic (rust-lang#135474)) - rust-lang#138602 (Slim `rustc_parse_format` dependencies down) - rust-lang#138631 (Update test for SGX now implementing `read_buf`) - rust-lang#138641 (Add unstable `--print=supported-crate-types` option) - rust-lang#138662 (Implement some basics in UEFI fs) - rust-lang#138837 (resolve: Avoid remaining unstable iteration) - rust-lang#138849 (doc: rename reference #create-a-configtoml to #create-a-bootstraptoml) Failed merges: - rust-lang#138755 ([rustdoc] Remove duplicated loop when computing doc cfgs) r? `@ghost` `@rustbot` modify labels: rollup
    
  matthiaskrgr 
      added a commit
        to matthiaskrgr/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…eGomez rustdoc: Gate unstable `doc(cfg())` predicates Fixes rust-lang#138113 Since the extraction process treats `cfg(true)` as having no cfg attribute, we have to do the gating during parsing; so we remove the unused `features` arg from `Cfg::matches`
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#138236 (uefi: Add OwnedEvent abstraction) - rust-lang#138293 (rustdoc: Gate unstable `doc(cfg())` predicates) - rust-lang#138509 (Add test to ensure no index out of bounds panic (rust-lang#135474)) - rust-lang#138631 (Update test for SGX now implementing `read_buf`) - rust-lang#138662 (Implement some basics in UEFI fs) - rust-lang#138837 (resolve: Avoid remaining unstable iteration) - rust-lang#138849 (doc: rename reference #create-a-configtoml to #create-a-bootstraptoml) r? `@ghost` `@rustbot` modify labels: rollup
    
  matthiaskrgr 
      added a commit
        to matthiaskrgr/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…eGomez rustdoc: Gate unstable `doc(cfg())` predicates Fixes rust-lang#138113 Since the extraction process treats `cfg(true)` as having no cfg attribute, we have to do the gating during parsing; so we remove the unused `features` arg from `Cfg::matches`
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…iaskrgr Rollup of 6 pull requests Successful merges: - rust-lang#138236 (uefi: Add OwnedEvent abstraction) - rust-lang#138293 (rustdoc: Gate unstable `doc(cfg())` predicates) - rust-lang#138509 (Add test to ensure no index out of bounds panic (rust-lang#135474)) - rust-lang#138631 (Update test for SGX now implementing `read_buf`) - rust-lang#138837 (resolve: Avoid remaining unstable iteration) - rust-lang#138849 (doc: rename reference #create-a-configtoml to #create-a-bootstraptoml) r? `@ghost` `@rustbot` modify labels: rollup
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…mpiler-errors Rollup of 12 pull requests Successful merges: - rust-lang#136040 (Remove unused trait BoundedSize) - rust-lang#138236 (uefi: Add OwnedEvent abstraction) - rust-lang#138293 (rustdoc: Gate unstable `doc(cfg())` predicates) - rust-lang#138509 (Add test to ensure no index out of bounds panic (rust-lang#135474)) - rust-lang#138545 (Add MIR pre-codegen tests to track rust-lang#138544) - rust-lang#138631 (Update test for SGX now implementing `read_buf`) - rust-lang#138641 (Add unstable `--print=supported-crate-types` option) - rust-lang#138667 (std: uefi: fs: Implement mkdir) - rust-lang#138849 (doc: rename reference #create-a-configtoml to #create-a-bootstraptoml) - rust-lang#138854 (Fix ICE rust-lang#138415 for invalid extern function body) - rust-lang#138858 (Say which test failed the `COMPILETEST_REQUIRE_ALL_LLVM_COMPONENTS` assertion) - rust-lang#138861 (Tweak type flags, fix missing flags from coroutine kind ty) Failed merges: - rust-lang#138755 ([rustdoc] Remove duplicated loop when computing doc cfgs) r? `@ghost` `@rustbot` modify labels: rollup
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…iaskrgr Rollup of 6 pull requests Successful merges: - rust-lang#138236 (uefi: Add OwnedEvent abstraction) - rust-lang#138293 (rustdoc: Gate unstable `doc(cfg())` predicates) - rust-lang#138509 (Add test to ensure no index out of bounds panic (rust-lang#135474)) - rust-lang#138631 (Update test for SGX now implementing `read_buf`) - rust-lang#138837 (resolve: Avoid remaining unstable iteration) - rust-lang#138849 (doc: rename reference #create-a-configtoml to #create-a-bootstraptoml) r? `@ghost` `@rustbot` modify labels: rollup
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 23, 2025 
    
    
      
  
    
      
    
  
…mpiler-errors Rollup of 12 pull requests Successful merges: - rust-lang#136040 (Remove unused trait BoundedSize) - rust-lang#138236 (uefi: Add OwnedEvent abstraction) - rust-lang#138293 (rustdoc: Gate unstable `doc(cfg())` predicates) - rust-lang#138509 (Add test to ensure no index out of bounds panic (rust-lang#135474)) - rust-lang#138545 (Add MIR pre-codegen tests to track rust-lang#138544) - rust-lang#138631 (Update test for SGX now implementing `read_buf`) - rust-lang#138641 (Add unstable `--print=supported-crate-types` option) - rust-lang#138667 (std: uefi: fs: Implement mkdir) - rust-lang#138849 (doc: rename reference #create-a-configtoml to #create-a-bootstraptoml) - rust-lang#138854 (Fix ICE rust-lang#138415 for invalid extern function body) - rust-lang#138858 (Say which test failed the `COMPILETEST_REQUIRE_ALL_LLVM_COMPONENTS` assertion) - rust-lang#138861 (Tweak type flags, fix missing flags from coroutine kind ty) Failed merges: - rust-lang#138755 ([rustdoc] Remove duplicated loop when computing doc cfgs) r? `@ghost` `@rustbot` modify labels: rollup
    
  bors 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 24, 2025 
    
    
      
  
    
      
    
  
…iaskrgr Rollup of 6 pull requests Successful merges: - rust-lang#138236 (uefi: Add OwnedEvent abstraction) - rust-lang#138293 (rustdoc: Gate unstable `doc(cfg())` predicates) - rust-lang#138509 (Add test to ensure no index out of bounds panic (rust-lang#135474)) - rust-lang#138631 (Update test for SGX now implementing `read_buf`) - rust-lang#138837 (resolve: Avoid remaining unstable iteration) - rust-lang#138849 (doc: rename reference #create-a-configtoml to #create-a-bootstraptoml) r? `@ghost` `@rustbot` modify labels: rollup
    
  rust-timer 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Mar 24, 2025 
    
    
      
  
    
      
    
  
Rollup merge of rust-lang#138293 - clubby789:doc-cfg-gate, r=GuillaumeGomez rustdoc: Gate unstable `doc(cfg())` predicates Fixes rust-lang#138113 Since the extraction process treats `cfg(true)` as having no cfg attribute, we have to do the gating during parsing; so we remove the unused `features` arg from `Cfg::matches`
    
  matthiaskrgr 
      added a commit
        to matthiaskrgr/rust
      that referenced
      this pull request
    
      Apr 17, 2025 
    
    
      
  
    
      
    
  
…t, r=davidtwco,Urgau,traviscross Stabilize `cfg_boolean_literals` Closes rust-lang#131204 `@rustbot` labels +T-lang +I-lang-nominated This will end up conflicting with the test in rust-lang#138293 so whichever doesn't land first will need updating -- # Stabilization Report ## General design ### What is the RFC for this feature and what changes have occurred to the user-facing design since the RFC was finalized? [RFC 3695](rust-lang/rfcs#3695), none. ### What behavior are we committing to that has been controversial? Summarize the major arguments pro/con. None ### Are there extensions to this feature that remain unstable? How do we know that we are not accidentally committing to those? None ## Has a call-for-testing period been conducted? If so, what feedback was received? Yes; only positive feedback was received. ## Implementation quality ### Summarize the major parts of the implementation and provide links into the code (or to PRs) Implemented in [rust-lang#131034](rust-lang#131034). ### Summarize existing test coverage of this feature - [Basic usage, including `#[cfg()]`, `cfg!()` and `#[cfg_attr()]`](https://github.com/rust-lang/rust/blob/6d71251cf9e40326461f90f8ff9a7024706aea87/tests/ui/cfg/true-false.rs) - [`--cfg=true/false` on the command line being accessible via `r#true/r#false`](https://github.com/rust-lang/rust/blob/6d71251cf9e40326461f90f8ff9a7024706aea87/tests/ui/cfg/raw-true-false.rs) - [Interaction with the unstable `#[doc(cfg(..))]` feature](https://github.com/rust-lang/rust/tree/6d71251/tests/rustdoc-ui/cfg-boolean-literal.rs) - [Denying `--check-cfg=cfg(true/false)`](https://github.com/rust-lang/rust/tree/6d71251/tests/ui/check-cfg/invalid-arguments.rs) - Ensuring `--cfg false` on the command line doesn't change the meaning of `cfg(false)`: `tests/ui/cfg/cmdline-false.rs` - Ensuring both `cfg(true)` and `cfg(false)` on the same item result in it being disabled: `tests/ui/cfg/both-true-false.rs` ### What outstanding bugs in the issue tracker involve this feature? Are they stabilization-blocking? The above mentioned issue; it should not block as it interacts with another unstable feature. ### What FIXMEs are still in the code for that feature and why is it ok to leave them there? None ### Summarize contributors to the feature by name for recognition and assuredness that people involved in the feature agree with stabilization - `@clubby789` (RFC) - `@Urgau` (Implementation in rustc) ### Which tools need to be adjusted to support this feature. Has this work been done? `rustdoc`'s unstable`#[doc(cfg(..)]` has been updated to respect it. `cargo` has been updated with a forward compatibility lint to enable supporting it in cargo once stabilized. ## Type system and execution rules ### What updates are needed to the reference/specification? (link to PRs when they exist) A few lines to be added to the reference for configuration predicates, specified in the RFC.
    
  rust-timer 
      added a commit
        to rust-lang-ci/rust
      that referenced
      this pull request
    
      Apr 17, 2025 
    
    
      
  
    
      
    
  
Rollup merge of rust-lang#138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross Stabilize `cfg_boolean_literals` Closes rust-lang#131204 `@rustbot` labels +T-lang +I-lang-nominated This will end up conflicting with the test in rust-lang#138293 so whichever doesn't land first will need updating -- # Stabilization Report ## General design ### What is the RFC for this feature and what changes have occurred to the user-facing design since the RFC was finalized? [RFC 3695](rust-lang/rfcs#3695), none. ### What behavior are we committing to that has been controversial? Summarize the major arguments pro/con. None ### Are there extensions to this feature that remain unstable? How do we know that we are not accidentally committing to those? None ## Has a call-for-testing period been conducted? If so, what feedback was received? Yes; only positive feedback was received. ## Implementation quality ### Summarize the major parts of the implementation and provide links into the code (or to PRs) Implemented in [rust-lang#131034](rust-lang#131034). ### Summarize existing test coverage of this feature - [Basic usage, including `#[cfg()]`, `cfg!()` and `#[cfg_attr()]`](https://github.com/rust-lang/rust/blob/6d71251cf9e40326461f90f8ff9a7024706aea87/tests/ui/cfg/true-false.rs) - [`--cfg=true/false` on the command line being accessible via `r#true/r#false`](https://github.com/rust-lang/rust/blob/6d71251cf9e40326461f90f8ff9a7024706aea87/tests/ui/cfg/raw-true-false.rs) - [Interaction with the unstable `#[doc(cfg(..))]` feature](https://github.com/rust-lang/rust/tree/6d71251/tests/rustdoc-ui/cfg-boolean-literal.rs) - [Denying `--check-cfg=cfg(true/false)`](https://github.com/rust-lang/rust/tree/6d71251/tests/ui/check-cfg/invalid-arguments.rs) - Ensuring `--cfg false` on the command line doesn't change the meaning of `cfg(false)`: `tests/ui/cfg/cmdline-false.rs` - Ensuring both `cfg(true)` and `cfg(false)` on the same item result in it being disabled: `tests/ui/cfg/both-true-false.rs` ### What outstanding bugs in the issue tracker involve this feature? Are they stabilization-blocking? The above mentioned issue; it should not block as it interacts with another unstable feature. ### What FIXMEs are still in the code for that feature and why is it ok to leave them there? None ### Summarize contributors to the feature by name for recognition and assuredness that people involved in the feature agree with stabilization - `@clubby789` (RFC) - `@Urgau` (Implementation in rustc) ### Which tools need to be adjusted to support this feature. Has this work been done? `rustdoc`'s unstable`#[doc(cfg(..)]` has been updated to respect it. `cargo` has been updated with a forward compatibility lint to enable supporting it in cargo once stabilized. ## Type system and execution rules ### What updates are needed to the reference/specification? (link to PRs when they exist) A few lines to be added to the reference for configuration predicates, specified in the RFC.
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      Labels
      
    F-doc_cfg
  `#![feature(doc_cfg)]` 
  
    S-waiting-on-bors
  Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 
  
    T-rustdoc
  Relevant to the rustdoc team, which will review and decide on the PR/issue. 
  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.
  
    
  
    
Fixes #138113
Since the extraction process treats
cfg(true)as having no cfg attribute, we have to do the gating during parsing; so we remove the unusedfeaturesarg fromCfg::matches