about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2023-12-09 14:05:10 +0100
committerGitHub <noreply@github.com>2023-12-09 14:05:10 +0100
commit78d2c8e6371896b91cfd35da8b09e58952b27407 (patch)
tree64861c91cba993b186e5548241c80b7ad71eead2
parent546643c13c63ce03feb88cf5c69e4ece95961b81 (diff)
parent4c1671674e97fa8a60f3999a3770f0c32499c584 (diff)
downloadrust-78d2c8e6371896b91cfd35da8b09e58952b27407.tar.gz
rust-78d2c8e6371896b91cfd35da8b09e58952b27407.zip
Rollup merge of #118702 - Urgau:check-cfg-strengthen-well-known, r=nnethercote
Strengthen well known check-cfg names and values test

https://github.com/rust-lang/rust/pull/118494 is changing the implementation of how we expect well known check-cfg names and values, but we currently don't have a test that checks every well known only some of them.

This PR therefore strengthen our well known names/values test to include all of the configs to at least avoid unintended regressions and validate new entry.

*this PR also contains some drive-by consolidation of unexpected `target_os`, `target_arch` into a single file*

r? `@nnethercote` (maybe? feel free to re-assign)
-rw-r--r--compiler/rustc_session/src/config.rs3
-rw-r--r--tests/ui/check-cfg/compact-values.rs2
-rw-r--r--tests/ui/check-cfg/compact-values.stderr6
-rw-r--r--tests/ui/check-cfg/values-target-json.rs4
-rw-r--r--tests/ui/check-cfg/values-target-json.stderr13
-rw-r--r--tests/ui/check-cfg/well-known-values.rs107
-rw-r--r--tests/ui/check-cfg/well-known-values.stderr240
7 files changed, 298 insertions, 77 deletions
diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs
index 4e16c378a58..ef465f371d2 100644
--- a/compiler/rustc_session/src/config.rs
+++ b/compiler/rustc_session/src/config.rs
@@ -1422,6 +1422,9 @@ impl CheckCfg {
         };
 
         // NOTE: This should be kept in sync with `default_configuration`
+        //
+        // When adding a new config here you should also update
+        // `tests/ui/check-cfg/well-known-values.rs`.
 
         let panic_values = &PanicStrategy::all();
 
diff --git a/tests/ui/check-cfg/compact-values.rs b/tests/ui/check-cfg/compact-values.rs
index 13c072fe920..80cf75d2770 100644
--- a/tests/ui/check-cfg/compact-values.rs
+++ b/tests/ui/check-cfg/compact-values.rs
@@ -8,7 +8,7 @@
 #[cfg(target(os = "linux", arch = "arm"))]
 pub fn expected() {}
 
-#[cfg(target(os = "linux", arch = "X"))]
+#[cfg(target(os = "linux", pointer_width = "X"))]
 //~^ WARNING unexpected `cfg` condition value
 pub fn unexpected() {}
 
diff --git a/tests/ui/check-cfg/compact-values.stderr b/tests/ui/check-cfg/compact-values.stderr
index bb2f4915b5e..819b789c3e5 100644
--- a/tests/ui/check-cfg/compact-values.stderr
+++ b/tests/ui/check-cfg/compact-values.stderr
@@ -1,10 +1,10 @@
 warning: unexpected `cfg` condition value: `X`
   --> $DIR/compact-values.rs:11:28
    |
-LL | #[cfg(target(os = "linux", arch = "X"))]
-   |                            ^^^^^^^^^^
+LL | #[cfg(target(os = "linux", pointer_width = "X"))]
+   |                            ^^^^^^^^^^^^^^^^^^^
    |
-   = note: expected values for `target_arch` are: `aarch64`, `arm`, `avr`, `bpf`, `csky`, `hexagon`, `loongarch64`, `m68k`, `mips`, `mips32r6`, `mips64`, `mips64r6`, `msp430`, `nvptx64`, `powerpc`, `powerpc64`, `riscv32`, `riscv64`, `s390x`, `sparc`, `sparc64`, `wasm32`, `wasm64`, `x86`, `x86_64`
+   = note: expected values for `target_pointer_width` are: `16`, `32`, `64`
    = note: `#[warn(unexpected_cfgs)]` on by default
 
 warning: 1 warning emitted
diff --git a/tests/ui/check-cfg/values-target-json.rs b/tests/ui/check-cfg/values-target-json.rs
index e4c1b54cccc..47ac79e0dbf 100644
--- a/tests/ui/check-cfg/values-target-json.rs
+++ b/tests/ui/check-cfg/values-target-json.rs
@@ -10,10 +10,6 @@
 #[lang = "sized"]
 trait Sized {}
 
-#[cfg(target_os = "linuz")]
-//~^ WARNING unexpected `cfg` condition value
-fn target_os_linux_misspell() {}
-
 #[cfg(target_os = "linux")]
 fn target_os_linux() {}
 
diff --git a/tests/ui/check-cfg/values-target-json.stderr b/tests/ui/check-cfg/values-target-json.stderr
deleted file mode 100644
index e71149f337f..00000000000
--- a/tests/ui/check-cfg/values-target-json.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-warning: unexpected `cfg` condition value: `linuz`
-  --> $DIR/values-target-json.rs:13:7
-   |
-LL | #[cfg(target_os = "linuz")]
-   |       ^^^^^^^^^^^^-------
-   |                   |
-   |                   help: there is a expected value with a similar name: `"linux"`
-   |
-   = note: expected values for `target_os` are: `aix`, `android`, `cuda`, `dragonfly`, `emscripten`, `ericos`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `macos`, `netbsd`, `none`, `nto`, `openbsd`, `psp`, `redox`, `solaris`, `solid_asp3`, `teeos`, `tvos`, `uefi`, `unknown`, `vita`, `vxworks`, `wasi`, `watchos`, `windows`, `xous`
-   = note: `#[warn(unexpected_cfgs)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/check-cfg/well-known-values.rs b/tests/ui/check-cfg/well-known-values.rs
index 8b56c8729d8..39a470c202f 100644
--- a/tests/ui/check-cfg/well-known-values.rs
+++ b/tests/ui/check-cfg/well-known-values.rs
@@ -1,41 +1,104 @@
-// This test check that we lint on non well known values and that we don't lint on well known
-// values
+// This test check that we recognize all the well known config names
+// and that we correctly lint on unexpected values.
+//
+// This test also serve as an "anti-regression" for the well known
+// values since the suggestion shows them.
 //
 // check-pass
 // compile-flags: --check-cfg=cfg() -Z unstable-options
 
-#[cfg(target_os = "linuz")]
+#![feature(cfg_overflow_checks)]
+#![feature(cfg_relocation_model)]
+#![feature(cfg_sanitize)]
+#![feature(cfg_target_abi)]
+#![feature(cfg_target_has_atomic)]
+#![feature(cfg_target_has_atomic_equal_alignment)]
+#![feature(cfg_target_thread_local)]
+
+// This part makes sure that none of the well known names are
+// unexpected.
+//
+// BUT to make sure that no expected values changes without
+// being noticed we pass them a obviously wrong value so the
+// diagnostic prints the list of expected values.
+#[cfg(any(
+    // tidy-alphabetical-start
+    debug_assertions = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    doc = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    doctest = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    miri = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    overflow_checks = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    panic = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    proc_macro = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    relocation_model = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    sanitize = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_abi = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_arch = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_endian = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_env = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_family = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_feature = "_UNEXPECTED_VALUE", // currently *any* values are "expected"
+    target_has_atomic = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_has_atomic_equal_alignment = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_has_atomic_load_store = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_os = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_pointer_width = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_thread_local = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    target_vendor = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    test = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    unix = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    windows = "_UNEXPECTED_VALUE",
+    //~^ WARN unexpected `cfg` condition value
+    // tidy-alphabetical-end
+))]
+fn unexpected_values() {}
+
+#[cfg(target_os = "linuz")] // testing that we suggest `linux`
 //~^ WARNING unexpected `cfg` condition value
 fn target_os_linux_misspell() {}
 
+// The #[cfg]s below serve as a safeguard to make sure we
+// don't lint when using an expected well-known name and
+// value, only a small subset of all possible expected
+// configs are tested, since we already test the names
+// above and don't need to test all values, just different
+// combinations (without value, with value, both...).
+
 #[cfg(target_os = "linux")]
 fn target_os_linux() {}
 
-#[cfg(target_has_atomic = "0")]
-//~^ WARNING unexpected `cfg` condition value
-fn target_has_atomic_invalid() {}
-
 #[cfg(target_has_atomic = "8")]
-fn target_has_atomic() {}
+fn target_has_atomic_8() {}
 
-#[cfg(unix = "aa")]
-//~^ WARNING unexpected `cfg` condition value
-fn unix_with_value() {}
+#[cfg(target_has_atomic)]
+fn target_has_atomic() {}
 
 #[cfg(unix)]
 fn unix() {}
 
-#[cfg(miri = "miri")]
-//~^ WARNING unexpected `cfg` condition value
-fn miri_with_value() {}
-
-#[cfg(miri)]
-fn miri() {}
-
-#[cfg(doc = "linux")]
-//~^ WARNING unexpected `cfg` condition value
-fn doc_with_value() {}
-
 #[cfg(doc)]
 fn doc() {}
 
diff --git a/tests/ui/check-cfg/well-known-values.stderr b/tests/ui/check-cfg/well-known-values.stderr
index 6877d8f5bb7..a6b9c75a142 100644
--- a/tests/ui/check-cfg/well-known-values.stderr
+++ b/tests/ui/check-cfg/well-known-values.stderr
@@ -1,53 +1,225 @@
-warning: unexpected `cfg` condition value: `linuz`
-  --> $DIR/well-known-values.rs:7:7
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:26:5
    |
-LL | #[cfg(target_os = "linuz")]
-   |       ^^^^^^^^^^^^-------
-   |                   |
-   |                   help: there is a expected value with a similar name: `"linux"`
+LL |     debug_assertions = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^----------------------
+   |                     |
+   |                     help: remove the value
    |
-   = note: expected values for `target_os` are: `aix`, `android`, `cuda`, `dragonfly`, `emscripten`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `macos`, `netbsd`, `none`, `nto`, `openbsd`, `psp`, `redox`, `solaris`, `solid_asp3`, `teeos`, `tvos`, `uefi`, `unknown`, `vita`, `vxworks`, `wasi`, `watchos`, `windows`, `xous`
+   = note: no expected value for `debug_assertions`
    = note: `#[warn(unexpected_cfgs)]` on by default
 
-warning: unexpected `cfg` condition value: `0`
-  --> $DIR/well-known-values.rs:14:7
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:28:5
+   |
+LL |     doc = "_UNEXPECTED_VALUE",
+   |     ^^^----------------------
+   |        |
+   |        help: remove the value
+   |
+   = note: no expected value for `doc`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:30:5
+   |
+LL |     doctest = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^----------------------
+   |            |
+   |            help: remove the value
+   |
+   = note: no expected value for `doctest`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:32:5
+   |
+LL |     miri = "_UNEXPECTED_VALUE",
+   |     ^^^^----------------------
+   |         |
+   |         help: remove the value
+   |
+   = note: no expected value for `miri`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:34:5
+   |
+LL |     overflow_checks = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^----------------------
+   |                    |
+   |                    help: remove the value
+   |
+   = note: no expected value for `overflow_checks`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:36:5
    |
-LL | #[cfg(target_has_atomic = "0")]
-   |       ^^^^^^^^^^^^^^^^^^^^---
-   |                           |
-   |                           help: there is a expected value with a similar name: `"8"`
+LL |     panic = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `panic` are: `abort`, `unwind`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:38:5
+   |
+LL |     proc_macro = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^----------------------
+   |               |
+   |               help: remove the value
+   |
+   = note: no expected value for `proc_macro`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:40:5
+   |
+LL |     relocation_model = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `relocation_model` are: `dynamic-no-pic`, `pic`, `pie`, `ropi`, `ropi-rwpi`, `rwpi`, `static`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:42:5
+   |
+LL |     sanitize = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `sanitize` are: `address`, `cfi`, `hwaddress`, `kcfi`, `kernel-address`, `leak`, `memory`, `memtag`, `safestack`, `shadow-call-stack`, `thread`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:44:5
+   |
+LL |     target_abi = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_abi` are: ``, `abi64`, `abiv2`, `abiv2hf`, `eabi`, `eabihf`, `elf`, `fortanix`, `ilp32`, `llvm`, `macabi`, `sim`, `softfloat`, `spe`, `uwp`, `vec-extabi`, `x32`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:46:5
+   |
+LL |     target_arch = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_arch` are: `aarch64`, `arm`, `avr`, `bpf`, `csky`, `hexagon`, `loongarch64`, `m68k`, `mips`, `mips32r6`, `mips64`, `mips64r6`, `msp430`, `nvptx64`, `powerpc`, `powerpc64`, `riscv32`, `riscv64`, `s390x`, `sparc`, `sparc64`, `wasm32`, `wasm64`, `x86`, `x86_64`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:48:5
+   |
+LL |     target_endian = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_endian` are: `big`, `little`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:50:5
+   |
+LL |     target_env = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_env` are: ``, `eabihf`, `gnu`, `gnueabihf`, `msvc`, `musl`, `newlib`, `nto70`, `nto71`, `ohos`, `psx`, `relibc`, `sgx`, `uclibc`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:52:5
+   |
+LL |     target_family = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_family` are: `unix`, `wasm`, `windows`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:55:5
+   |
+LL |     target_has_atomic = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: expected values for `target_has_atomic` are: (none), `128`, `16`, `32`, `64`, `8`, `ptr`
 
-warning: unexpected `cfg` condition value: `aa`
-  --> $DIR/well-known-values.rs:21:7
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:57:5
    |
-LL | #[cfg(unix = "aa")]
-   |       ^^^^-------
-   |           |
-   |           help: remove the value
+LL |     target_has_atomic_equal_alignment = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_has_atomic_equal_alignment` are: (none), `128`, `16`, `32`, `64`, `8`, `ptr`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:59:5
+   |
+LL |     target_has_atomic_load_store = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_has_atomic_load_store` are: (none), `128`, `16`, `32`, `64`, `8`, `ptr`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:61:5
+   |
+LL |     target_os = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_os` are: `aix`, `android`, `cuda`, `dragonfly`, `emscripten`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `macos`, `netbsd`, `none`, `nto`, `openbsd`, `psp`, `redox`, `solaris`, `solid_asp3`, `teeos`, `tvos`, `uefi`, `unknown`, `vita`, `vxworks`, `wasi`, `watchos`, `windows`, `xous`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:63:5
+   |
+LL |     target_pointer_width = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_pointer_width` are: `16`, `32`, `64`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:65:5
+   |
+LL |     target_thread_local = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^----------------------
+   |                        |
+   |                        help: remove the value
+   |
+   = note: no expected value for `target_thread_local`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:67:5
+   |
+LL |     target_vendor = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: expected values for `target_vendor` are: `apple`, `espressif`, `fortanix`, `ibm`, `kmc`, `nintendo`, `nvidia`, `pc`, `sony`, `sun`, `unikraft`, `unknown`, `uwp`, `win7`, `wrs`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:69:5
+   |
+LL |     test = "_UNEXPECTED_VALUE",
+   |     ^^^^----------------------
+   |         |
+   |         help: remove the value
+   |
+   = note: no expected value for `test`
+
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:71:5
+   |
+LL |     unix = "_UNEXPECTED_VALUE",
+   |     ^^^^----------------------
+   |         |
+   |         help: remove the value
    |
    = note: no expected value for `unix`
 
-warning: unexpected `cfg` condition value: `miri`
-  --> $DIR/well-known-values.rs:28:7
+warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
+  --> $DIR/well-known-values.rs:73:5
    |
-LL | #[cfg(miri = "miri")]
-   |       ^^^^---------
-   |           |
-   |           help: remove the value
+LL |     windows = "_UNEXPECTED_VALUE",
+   |     ^^^^^^^----------------------
+   |            |
+   |            help: remove the value
    |
-   = note: no expected value for `miri`
+   = note: no expected value for `windows`
 
-warning: unexpected `cfg` condition value: `linux`
-  --> $DIR/well-known-values.rs:35:7
+warning: unexpected `cfg` condition value: `linuz`
+  --> $DIR/well-known-values.rs:79:7
    |
-LL | #[cfg(doc = "linux")]
-   |       ^^^----------
-   |          |
-   |          help: remove the value
+LL | #[cfg(target_os = "linuz")] // testing that we suggest `linux`
+   |       ^^^^^^^^^^^^-------
+   |                   |
+   |                   help: there is a expected value with a similar name: `"linux"`
    |
-   = note: no expected value for `doc`
+   = note: expected values for `target_os` are: `aix`, `android`, `cuda`, `dragonfly`, `emscripten`, `espidf`, `freebsd`, `fuchsia`, `haiku`, `hermit`, `horizon`, `hurd`, `illumos`, `ios`, `l4re`, `linux`, `macos`, `netbsd`, `none`, `nto`, `openbsd`, `psp`, `redox`, `solaris`, `solid_asp3`, `teeos`, `tvos`, `uefi`, `unknown`, `vita`, `vxworks`, `wasi`, `watchos`, `windows`, `xous`
 
-warning: 5 warnings emitted
+warning: 25 warnings emitted