use TryAddFlag for parentsPflags

This commit is contained in:
luyanbo 2021-09-12 21:34:27 +08:00
parent de187e874d
commit f6fd9cc923

View file

@ -1517,7 +1517,7 @@ func (c *Command) InheritedFlags() *flag.FlagSet {
c.parentsPflags.VisitAll(func(f *flag.Flag) { c.parentsPflags.VisitAll(func(f *flag.Flag) {
if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil { if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil {
c.iflags.AddFlag(f) c.iflags.TryAddFlag(f)
} }
}) })
return c.iflags return c.iflags
@ -1655,7 +1655,7 @@ func (c *Command) Parent() *Command {
func (c *Command) mergePersistentFlags() { func (c *Command) mergePersistentFlags() {
c.updateParentsPflags() c.updateParentsPflags()
c.Flags().AddFlagSet(c.PersistentFlags()) c.Flags().AddFlagSet(c.PersistentFlags())
c.Flags().AddFlagSet(c.parentsPflags) c.Flags().TryAddFlagSet(c.parentsPflags)
} }
// updateParentsPflags updates c.parentsPflags by adding // updateParentsPflags updates c.parentsPflags by adding
@ -1675,6 +1675,6 @@ func (c *Command) updateParentsPflags() {
c.Root().PersistentFlags().AddFlagSet(flag.CommandLine) c.Root().PersistentFlags().AddFlagSet(flag.CommandLine)
c.VisitParents(func(parent *Command) { c.VisitParents(func(parent *Command) {
c.parentsPflags.AddFlagSet(parent.PersistentFlags()) c.parentsPflags.TryAddFlagSet(parent.PersistentFlags())
}) })
} }