Merge pull request #271 from creker/NestedOmitempty

Don't pass fields tags into nested types
This commit is contained in:
GoWebProd
2020-04-12 17:32:32 +03:00
committed by GitHub
3 changed files with 20 additions and 5 deletions
+5 -5
View File
@@ -161,7 +161,7 @@ func (g *Generator) genTypeDecoderNoCheck(t reflect.Type, out string, tags field
fmt.Fprintln(g.out, ws+" for !in.IsDelim(']') {")
fmt.Fprintln(g.out, ws+" var "+tmpVar+" "+g.getType(elem))
if err := g.genTypeDecoder(elem, tmpVar, tags, indent+2); err != nil {
if err := g.genTypeDecoder(elem, tmpVar, fieldTags{}, indent+2); err != nil {
return err
}
@@ -195,7 +195,7 @@ func (g *Generator) genTypeDecoderNoCheck(t reflect.Type, out string, tags field
fmt.Fprintln(g.out, ws+" for !in.IsDelim(']') {")
fmt.Fprintln(g.out, ws+" if "+iterVar+" < "+fmt.Sprint(length)+" {")
if err := g.genTypeDecoder(elem, "("+out+")["+iterVar+"]", tags, indent+3); err != nil {
if err := g.genTypeDecoder(elem, "("+out+")["+iterVar+"]", fieldTags{}, indent+3); err != nil {
return err
}
@@ -229,7 +229,7 @@ func (g *Generator) genTypeDecoderNoCheck(t reflect.Type, out string, tags field
fmt.Fprintln(g.out, ws+" "+out+" = new("+g.getType(t.Elem())+")")
fmt.Fprintln(g.out, ws+" }")
if err := g.genTypeDecoder(t.Elem(), "*"+out, tags, indent+1); err != nil {
if err := g.genTypeDecoder(t.Elem(), "*"+out, fieldTags{}, indent+1); err != nil {
return err
}
@@ -270,7 +270,7 @@ func (g *Generator) genTypeDecoderNoCheck(t reflect.Type, out string, tags field
fmt.Fprintln(g.out, ws+" key := "+g.getType(key)+"("+keyDec+")")
} else {
fmt.Fprintln(g.out, ws+" var key "+g.getType(key))
if err := g.genTypeDecoder(key, "key", tags, indent+2); err != nil {
if err := g.genTypeDecoder(key, "key", fieldTags{}, indent+2); err != nil {
return err
}
}
@@ -278,7 +278,7 @@ func (g *Generator) genTypeDecoderNoCheck(t reflect.Type, out string, tags field
fmt.Fprintln(g.out, ws+" in.WantColon()")
fmt.Fprintln(g.out, ws+" var "+tmpVar+" "+g.getType(elem))
if err := g.genTypeDecoder(elem, tmpVar, tags, indent+2); err != nil {
if err := g.genTypeDecoder(elem, tmpVar, fieldTags{}, indent+2); err != nil {
return err
}
+1
View File
@@ -35,6 +35,7 @@ var testCases = []struct {
{&arrayValue, arrayString},
{&mapsValue, mapsString},
{&deepNestValue, deepNestString},
{&deepNestOptionalValue, deepNestOptionalString},
{&IntsValue, IntsString},
{&mapStringStringValue, mapStringStringString},
{&namedTypeValue, namedTypeValueString},
+14
View File
@@ -659,6 +659,20 @@ var deepNestString = `{` +
`"NamedStringSlice":["value4","value5"]` +
`}`
type DeepNestOptional struct {
MapSlice []map[Str]Str `json:",omitempty"`
}
var deepNestOptionalValue = DeepNestOptional{
MapSlice: []map[Str]Str{map[Str]Str{}},
}
var deepNestOptionalString = `{` +
`"MapSlice":[` +
`{}` +
`]` +
`}`
//easyjson:json
type Ints []int