Don't pass field tags into nested types

This commit is contained in:
creker
2020-03-03 16:41:45 +03:00
parent 8edcc4e51f
commit 9e9dfede4e
3 changed files with 20 additions and 5 deletions
+5 -5
View File
@@ -156,7 +156,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
}
@@ -190,7 +190,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
}
@@ -224,7 +224,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
}
@@ -265,7 +265,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
}
}
@@ -273,7 +273,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