diff --git a/clap_derive/src/derives/args.rs b/clap_derive/src/derives/args.rs index dd894958570..ce32b8676a5 100644 --- a/clap_derive/src/derives/args.rs +++ b/clap_derive/src/derives/args.rs @@ -264,9 +264,9 @@ pub fn gen_augment( Ty::OptionOption => quote_spanned! { ty.span()=> .takes_value(true) #value_name - .multiple_values(false) .min_values(0) .max_values(1) + .multiple_values(false) #validator }, diff --git a/clap_derive/tests/options.rs b/clap_derive/tests/options.rs index e5ecfdce17e..ae40abbc6f1 100644 --- a/clap_derive/tests/options.rs +++ b/clap_derive/tests/options.rs @@ -14,7 +14,10 @@ #![allow(clippy::option_option)] +mod utils; + use clap::Clap; +use utils::*; #[test] fn required_option() { @@ -135,6 +138,18 @@ fn optional_argument_for_optional_option() { assert!(Opt::try_parse_from(&["test", "-a42", "-a24"]).is_err()); } +#[test] +fn option_option_help() { + #[derive(Clap, Debug)] + struct Opt { + #[clap(long, value_name = "val")] + arg: Option>, + } + let help = get_help::(); + assert!(help.contains("--arg ")); + assert!(!help.contains("--arg ...")); +} + #[test] fn two_option_options() { #[derive(Clap, PartialEq, Debug)]