Parcourir la source

Merge pull request #416 from jarredhawkins/issue-415

Ignore unnamed literals in structs
Tao Wen il y a 6 ans
Parent
commit
dc11f49689
2 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 1 1
      reflect_extension.go
  2. 5 0
      type_tests/struct_embedded_test.go

+ 1 - 1
reflect_extension.go

@@ -341,7 +341,7 @@ func describeStruct(ctx *ctx, typ reflect2.Type) *StructDescriptor {
 		if ctx.onlyTaggedField && !hastag && !field.Anonymous() {
 			continue
 		}
-		if tag == "-" {
+		if tag == "-" || field.Name() == "_" {
 			continue
 		}
 		tagParts := strings.Split(tag, ",")

+ 5 - 0
type_tests/struct_embedded_test.go

@@ -60,6 +60,7 @@ func init() {
 		(*SameLevel2NoTags)(nil),
 		(*SameLevel2Tagged)(nil),
 		(*EmbeddedPtr)(nil),
+		(*UnnamedLiteral)(nil),
 	)
 }
 
@@ -231,3 +232,7 @@ type EmbeddedPtrOption struct {
 type EmbeddedPtr struct {
 	EmbeddedPtrOption `json:","`
 }
+
+type UnnamedLiteral struct {
+	_ struct{}
+}