diff options
Diffstat (limited to 'src/tools/rustfmt/src/release_channel.rs')
-rw-r--r-- | src/tools/rustfmt/src/release_channel.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/tools/rustfmt/src/release_channel.rs b/src/tools/rustfmt/src/release_channel.rs new file mode 100644 index 000000000..948247b3c --- /dev/null +++ b/src/tools/rustfmt/src/release_channel.rs @@ -0,0 +1,16 @@ +/// Checks if we're in a nightly build. +/// +/// The environment variable `CFG_RELEASE_CHANNEL` is set during the rustc bootstrap +/// to "stable", "beta", or "nightly" depending on what toolchain is being built. +/// If we are being built as part of the stable or beta toolchains, we want +/// to disable unstable configuration options. +/// +/// If we're being built by cargo (e.g., `cargo +nightly install rustfmt-nightly`), +/// `CFG_RELEASE_CHANNEL` is not set. As we only support being built against the +/// nightly compiler when installed from crates.io, default to nightly mode. +#[macro_export] +macro_rules! is_nightly_channel { + () => { + option_env!("CFG_RELEASE_CHANNEL").map_or(true, |c| c == "nightly" || c == "dev") + }; +} |