fix: overly enthusiastic validation of tags

This commit is contained in:
Alec Thomas
2021-12-09 19:10:11 +11:00
parent ece1f6d8cb
commit fa08e7027c
3 changed files with 33 additions and 11 deletions
+6 -7
View File
@@ -167,14 +167,13 @@ MAIN:
}
// Scan through argument positionals to ensure optional is never before a required.
last := true
for i, p := range node.Positional {
if !last && p.Required {
return nil, fmt.Errorf("argument %q can not be required after an optional", p.Name)
var last *Value
for i, curr := range node.Positional {
if last != nil && !last.Required && curr.Required {
return nil, fmt.Errorf("%s: required %q can not come after optional %q", node.FullPath(), curr.Name, last.Name)
}
last = p.Required
p.Position = i
last = curr
curr.Position = i
}
return node, nil