Merge pull request #156 from sourcegraph/go16-embedded-unexported-fields
Parse unexported embedded option struct fields in Go 1.6 (consistent w/pre-Go 1.6)
diff --git a/group.go b/group.go
index 0a40b39..078a765 100644
--- a/group.go
+++ b/group.go
@@ -187,7 +187,7 @@
field := stype.Field(i)
// PkgName is set only for non-exported fields, which we ignore
- if field.PkgPath != "" {
+ if field.PkgPath != "" && !field.Anonymous {
continue
}
diff --git a/parser_test.go b/parser_test.go
index fe6865c..b57dbee 100644
--- a/parser_test.go
+++ b/parser_test.go
@@ -471,3 +471,17 @@
assertParseSuccess(t, &opts, "--choose", "v2")
assertString(t, opts.Choice, "v2")
}
+
+func TestEmbedded(t *testing.T) {
+ type embedded struct {
+ V bool `short:"v"`
+ }
+ var opts struct {
+ embedded
+ }
+
+ assertParseSuccess(t, &opts, "-v")
+ if !opts.V {
+ t.Errorf("Expected V to be true")
+ }
+}