Skip to content

Commit ee5197b

Browse files
authored
Merge pull request #5009 from epage/derive
fix(derive): Don't fail on variant field attributes
2 parents 9af3a94 + 3025ff8 commit ee5197b

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

clap_derive/src/derives/subcommand.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ fn gen_augment(
182182

183183
Kind::Flatten(_) => match variant.fields {
184184
Unnamed(FieldsUnnamed { ref unnamed, .. }) if unnamed.len() == 1 => {
185-
let ty = &unnamed[0];
185+
let ty = &unnamed[0].ty;
186186
let deprecations = if !override_required {
187187
item.deprecations()
188188
} else {
@@ -223,7 +223,7 @@ fn gen_augment(
223223
}
224224
Unit => quote!( #subcommand_var ),
225225
Unnamed(FieldsUnnamed { ref unnamed, .. }) if unnamed.len() == 1 => {
226-
let ty = &unnamed[0];
226+
let ty = &unnamed[0].ty;
227227
if override_required {
228228
quote_spanned! { ty.span()=>
229229
{
@@ -293,7 +293,7 @@ fn gen_augment(
293293
}
294294
}
295295
Unnamed(FieldsUnnamed { ref unnamed, .. }) if unnamed.len() == 1 => {
296-
let ty = &unnamed[0];
296+
let ty = &unnamed[0].ty;
297297
let arg_block = if override_required {
298298
quote_spanned! { ty.span()=>
299299
{
@@ -390,7 +390,7 @@ fn gen_has_subcommand(variants: &[(&Variant, Item)]) -> Result<TokenStream, syn:
390390
.iter()
391391
.map(|(variant, _attrs)| match variant.fields {
392392
Unnamed(ref fields) if fields.unnamed.len() == 1 => {
393-
let ty = &fields.unnamed[0];
393+
let ty = &fields.unnamed[0].ty;
394394
Ok(quote! {
395395
if <#ty as clap::Subcommand>::has_subcommand(__clap_name) {
396396
return true;
@@ -496,7 +496,7 @@ fn gen_from_arg_matches(variants: &[(&Variant, Item)]) -> Result<TokenStream, sy
496496
},
497497
Unit => quote!(),
498498
Unnamed(ref fields) if fields.unnamed.len() == 1 => {
499-
let ty = &fields.unnamed[0];
499+
let ty = &fields.unnamed[0].ty;
500500
quote!( ( <#ty as clap::FromArgMatches>::from_arg_matches_mut(__clap_arg_matches)? ) )
501501
}
502502
Unnamed(..) => abort_call_site!("{}: tuple enums are not supported", variant.ident),
@@ -512,7 +512,7 @@ fn gen_from_arg_matches(variants: &[(&Variant, Item)]) -> Result<TokenStream, sy
512512
let variant_name = &variant.ident;
513513
match variant.fields {
514514
Unnamed(ref fields) if fields.unnamed.len() == 1 => {
515-
let ty = &fields.unnamed[0];
515+
let ty = &fields.unnamed[0].ty;
516516
Ok(quote! {
517517
if __clap_arg_matches
518518
.subcommand_name()
@@ -632,7 +632,7 @@ fn gen_update_from_arg_matches(variants: &[(&Variant, Item)]) -> Result<TokenStr
632632
let variant_name = &variant.ident;
633633
match variant.fields {
634634
Unnamed(ref fields) if fields.unnamed.len() == 1 => {
635-
let ty = &fields.unnamed[0];
635+
let ty = &fields.unnamed[0].ty;
636636
Ok(quote! {
637637
if <#ty as clap::Subcommand>::has_subcommand(__clap_name) {
638638
if let Self :: #variant_name (child) = s {

0 commit comments

Comments
 (0)