Differentiate between omitted and empty default.

Fixes #250.
This commit is contained in:
Alec Thomas
2021-12-13 19:03:23 +11:00
parent 9c9b8ab50b
commit 7533b11d06
6 changed files with 19 additions and 8 deletions
+2 -1
View File
@@ -211,7 +211,7 @@ func buildChild(k *Kong, node *Node, typ NodeType, v reflect.Value, ft reflect.S
if child.Help == "" {
child.Help = child.Argument.Help
}
} else if tag.Default != "" {
} else if tag.HasDefault {
if node.DefaultCmd != nil {
return failField(v, ft, "can't have more than one default command under %s", node.Summary())
}
@@ -239,6 +239,7 @@ func buildField(k *Kong, node *Node, v reflect.Value, ft reflect.StructField, fv
Name: name,
Help: tag.Help,
OrigHelp: tag.Help,
HasDefault: tag.HasDefault,
Default: tag.Default,
DefaultValue: reflect.New(fv.Type()).Elem(),
Mapper: mapper,