Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 984c51f

Browse files
committed
Stabilize cfg_boolean_literals
1 parent 946aea0 commit 984c51f

File tree

15 files changed

+26
-163
lines changed

15 files changed

+26
-163
lines changed

compiler/rustc_attr_parsing/src/attributes/cfg.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use rustc_session::config::ExpectedValues;
77
use rustc_session::lint::BuiltinLintDiag;
88
use rustc_session::lint::builtin::UNEXPECTED_CFGS;
99
use rustc_session::parse::feature_err;
10-
use rustc_span::symbol::kw;
1110
use rustc_span::{Span, Symbol, sym};
1211

1312
use crate::session_diagnostics::{self, UnsupportedLiteralReason};
@@ -89,20 +88,6 @@ pub fn eval_condition(
8988
let cfg = match cfg {
9089
MetaItemInner::MetaItem(meta_item) => meta_item,
9190
MetaItemInner::Lit(MetaItemLit { kind: LitKind::Bool(b), .. }) => {
92-
if let Some(features) = features {
93-
// we can't use `try_gate_cfg` as symbols don't differentiate between `r#true`
94-
// and `true`, and we want to keep the former working without feature gate
95-
gate_cfg(
96-
&(
97-
if *b { kw::True } else { kw::False },
98-
sym::cfg_boolean_literals,
99-
|features: &Features| features.cfg_boolean_literals(),
100-
),
101-
cfg.span(),
102-
sess,
103-
features,
104-
);
105-
}
10691
return *b;
10792
}
10893
_ => {

compiler/rustc_feature/src/accepted.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ declare_features! (
9595
(accepted, c_unwind, "1.81.0", Some(74990)),
9696
/// Allows `#[cfg_attr(predicate, multiple, attributes, here)]`.
9797
(accepted, cfg_attr_multi, "1.33.0", Some(54881)),
98+
/// Allows the use of `#[cfg(<true/false>)]`.
99+
(accepted, cfg_boolean_literals, "CURRENT_RUSTC_VERSION", Some(131204)),
98100
/// Allows the use of `#[cfg(doctest)]`, set when rustdoc is collecting doctests.
99101
(accepted, cfg_doctest, "1.40.0", Some(62210)),
100102
/// Enables `#[cfg(panic = "...")]` config key.

compiler/rustc_feature/src/unstable.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,8 +391,6 @@ declare_features! (
391391
(unstable, async_trait_bounds, "1.85.0", Some(62290)),
392392
/// Allows using C-variadics.
393393
(unstable, c_variadic, "1.34.0", Some(44930)),
394-
/// Allows the use of `#[cfg(<true/false>)]`.
395-
(unstable, cfg_boolean_literals, "1.83.0", Some(131204)),
396394
/// Allows the use of `#[cfg(contract_checks)` to check if contract checks are enabled.
397395
(unstable, cfg_contract_checks, "1.86.0", Some(128044)),
398396
/// Allows the use of `#[cfg(overflow_checks)` to check if integer overflow behaviour.

src/doc/unstable-book/src/language-features/cfg-boolean-literals.md

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/tools/rust-analyzer/crates/ide-db/src/generated/lints.rs

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3789,35 +3789,6 @@ The tracking issue for this feature is: [#64797]
37893789
[#64797]: https://github.com/rust-lang/rust/issues/64797
37903790

37913791
------------------------
3792-
"##,
3793-
default_severity: Severity::Allow,
3794-
warn_since: None,
3795-
deny_since: None,
3796-
},
3797-
Lint {
3798-
label: "cfg_boolean_literals",
3799-
description: r##"# `cfg_boolean_literals`
3800-
3801-
The tracking issue for this feature is: [#131204]
3802-
3803-
[#131204]: https://github.com/rust-lang/rust/issues/131204
3804-
3805-
------------------------
3806-
3807-
The `cfg_boolean_literals` feature makes it possible to use the `true`/`false`
3808-
literal as cfg predicate. They always evaluate to true/false respectively.
3809-
3810-
## Examples
3811-
3812-
```rust
3813-
#![feature(cfg_boolean_literals)]
3814-
3815-
#[cfg(true)]
3816-
const A: i32 = 5;
3817-
3818-
#[cfg(all(false))]
3819-
const A: i32 = 58 * 89;
3820-
```
38213792
"##,
38223793
default_severity: Severity::Allow,
38233794
warn_since: None,

tests/rustdoc-ui/cfg-boolean-literal.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
//@ check-pass
22

3-
#![feature(cfg_boolean_literals)]
43
#![feature(doc_cfg)]
54

65
#[doc(cfg(false))]

tests/rustdoc-ui/doc-cfg-unstable.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
// #138113: rustdoc didn't gate unstable predicates inside `doc(cfg(..))`
22
#![feature(doc_cfg)]
33

4-
// `cfg_boolean_literals`
5-
#[doc(cfg(false))] //~ ERROR `cfg(false)` is experimental and subject to change
6-
pub fn cfg_boolean_literals() {}
7-
84
// `cfg_version`
95
#[doc(cfg(sanitize = "thread"))] //~ ERROR `cfg(sanitize)` is experimental and subject to change
106
pub fn cfg_sanitize() {}
Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
1-
error[E0658]: `cfg(false)` is experimental and subject to change
2-
--> $DIR/doc-cfg-unstable.rs:5:11
3-
|
4-
LL | #[doc(cfg(false))]
5-
| ^^^^^
6-
|
7-
= note: see issue #131204 <https://github.com/rust-lang/rust/issues/131204> for more information
8-
= help: add `#![feature(cfg_boolean_literals)]` to the crate attributes to enable
9-
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
10-
111
error[E0658]: `cfg(sanitize)` is experimental and subject to change
12-
--> $DIR/doc-cfg-unstable.rs:9:11
2+
--> $DIR/doc-cfg-unstable.rs:5:11
133
|
144
LL | #[doc(cfg(sanitize = "thread"))]
155
| ^^^^^^^^^^^^^^^^^^^
@@ -18,6 +8,6 @@ LL | #[doc(cfg(sanitize = "thread"))]
188
= help: add `#![feature(cfg_sanitize)]` to the crate attributes to enable
199
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
2010

21-
error: aborting due to 2 previous errors
11+
error: aborting due to 1 previous error
2212

2313
For more information about this error, try `rustc --explain E0658`.

tests/ui/cfg/true-false.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
//@ run-pass
22

33
#![feature(link_cfg)]
4-
#![feature(cfg_boolean_literals)]
54

65
#[cfg(true)]
76
fn foo() -> bool {

tests/ui/feature-gates/feature-gate-cfg-boolean-literals.rs

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)