From c1caf462ce40fc541066dfb2a9cccb586777a757 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Mon, 27 Feb 2023 12:46:57 +0200 Subject: [PATCH] fix(derive): Avoid arg reassignment in `gen_augment` --- clap_derive/src/derives/args.rs | 14 ++++---------- clap_derive/src/derives/subcommand.rs | 17 +++++++---------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/clap_derive/src/derives/args.rs b/clap_derive/src/derives/args.rs index b5d51bfca397..867adeccc676 100644 --- a/clap_derive/src/derives/args.rs +++ b/clap_derive/src/derives/args.rs @@ -341,16 +341,10 @@ pub fn gen_augment( #deprecations #[allow(deprecated)] - let arg = clap::Arg::new(#id) - #implicit_methods; - - let arg = arg - #explicit_methods; - - let arg = arg - #override_methods; - - arg + clap::Arg::new(#id) + #implicit_methods + #explicit_methods + #override_methods }); }) } diff --git a/clap_derive/src/derives/subcommand.rs b/clap_derive/src/derives/subcommand.rs index 8a44e0c42196..c2641815d76a 100644 --- a/clap_derive/src/derives/subcommand.rs +++ b/clap_derive/src/derives/subcommand.rs @@ -255,13 +255,11 @@ fn gen_augment( let subcommand = quote! { let #app_var = #app_var.subcommand({ #deprecations; - let #subcommand_var = clap::Command::new(#name); - let #subcommand_var = #subcommand_var + let #subcommand_var = clap::Command::new(#name) .subcommand_required(true) - .arg_required_else_help(true); - let #subcommand_var = #subcommand_var #initial_app_methods; - let #subcommand_var = #arg_block; - #subcommand_var #final_from_attrs #override_methods + .arg_required_else_help(true) + #initial_app_methods; + #arg_block #final_from_attrs #override_methods }); }; Some(subcommand) @@ -283,13 +281,12 @@ fn gen_augment( args::gen_augment(&fields, &subcommand_var, item, override_required) } Unit => { - let arg_block = quote!( #subcommand_var ); let initial_app_methods = item.initial_top_level_methods(); let final_from_attrs = item.final_top_level_methods(); quote! { - let #subcommand_var = #subcommand_var #initial_app_methods; - let #subcommand_var = #arg_block; - #subcommand_var #final_from_attrs + #subcommand_var + #initial_app_methods + #final_from_attrs } }, Unnamed(FieldsUnnamed { ref unnamed, .. }) if unnamed.len() == 1 => {