Skip to content

Warning in 2024 edition: unexpected cfg condition name: trybuild #20

Open
@leecbaker

Description

@leecbaker

When consuming this crate from Rust 2024 edition code, the following warning message is generated. It's not immediately obvious what the code is trying to do (#[cfg(trybuild)]).

warning: unexpected `cfg` condition name: `trybuild`
  --> simple/src/main.rs:6:5
   |
6  | /     #[message_bundle(
7  | |         resources = [
8  | |             ("l10n/en-US/messages.ftl", "en-US"),
9  | |             ("l10n/fr-CH/messages.ftl", "fr-CH"),
10 | |         ],
11 | |         default_language = "en-US")]
   | |____________________________________^
   |
   = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows`
   = note: using a cfg inside a attribute macro will use the cfgs from the destination crate and not the ones from the defining crate
   = help: try referring to `message_bundle` crate for guidance on how handle this unexpected cfg
   = help: the attribute macro `message_bundle` may come from an old version of the `fluent_static_macros` crate, try updating your dependency with `cargo update -p fluent_static_macros`
   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
   = note: `#[warn(unexpected_cfgs)]` on by default
   = note: this warning originates in the attribute macro `message_bundle` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: `procmacro` (bin "procmacro") generated 1 warning

Reproducing

Reproduction of warning is fairly easy:

  • Modify the simple example to use the 2024 edition by changing examples/simple/Cargo.toml:4 from 2021 to 2024 edition:
-edition = "2021"
+edition = "2024"
  • Compile the example
$ rustc --version
rustc 1.85.0 (4d91de4e4 2025-02-17)
$ pwd
/Users/$me/fluent-static/examples/simple
$ cargo build

Origin code

crates/macros/src/lib.rs:36-41

                    quote! {
                        #[cfg(trybuild)]
                        const _: &str = include_str!(concat!(env!("CARGO_MANIFEST_DIR_OVERRIDE"), "/", #path));
                        #[cfg(not(trybuild))]
                        const _: &str = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/", #path));
                    }

Compiled using

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions