diff --git a/src/build/app/settings.rs b/src/build/app/settings.rs index 5367c5b3b53..91479831c37 100644 --- a/src/build/app/settings.rs +++ b/src/build/app/settings.rs @@ -1,5 +1,7 @@ // Std -use std::{ops::BitOr, str::FromStr}; +use std::ops::BitOr; +#[cfg(feature = "yaml")] +use std::str::FromStr; // Third party use bitflags::bitflags; @@ -1158,11 +1160,12 @@ impl_settings! { AppSettings, AppFlags, #[cfg(test)] mod test { - use super::AppSettings; - #[allow(clippy::cognitive_complexity)] #[test] + #[cfg(feature = "yaml")] fn app_settings_fromstr() { + use super::AppSettings; + assert_eq!( "disablehelpflag".parse::().unwrap(), AppSettings::DisableHelpFlag diff --git a/src/build/arg/settings.rs b/src/build/arg/settings.rs index 1dd0ecf2cd6..af6712e24e5 100644 --- a/src/build/arg/settings.rs +++ b/src/build/arg/settings.rs @@ -1,5 +1,7 @@ // Std -use std::{ops::BitOr, str::FromStr}; +use std::ops::BitOr; +#[cfg(feature = "yaml")] +use std::str::FromStr; // Third party use bitflags::bitflags; @@ -157,10 +159,11 @@ impl_settings! { ArgSettings, ArgFlags, #[cfg(test)] mod test { - use super::ArgSettings; - #[test] + #[cfg(feature = "yaml")] fn arg_settings_fromstr() { + use super::ArgSettings; + assert_eq!( "allowhyphenvalues".parse::().unwrap(), ArgSettings::AllowHyphenValues diff --git a/src/macros.rs b/src/macros.rs index 01bed5b45a9..bc3a1013be8 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -879,6 +879,8 @@ macro_rules! impl_settings { } } + /// Deprecated in [Issue #3087](https://github.com/clap-rs/clap/issues/3087), maybe [`clap::Parser`][crate::Parser] would fit your use case? + #[cfg(feature = "yaml")] impl FromStr for $settings { type Err = String; fn from_str(s: &str) -> Result::Err> {