Skip to content

Commit 554506d

Browse files
authored
Merge pull request #378 from orisano/fix/#372
Fix embedded primitive type encoding using alias
2 parents 1468eef + f0e6a54 commit 554506d

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

decode_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3968,3 +3968,20 @@ func TestIssue335(t *testing.T) {
39683968
t.Errorf("unexpected success")
39693969
}
39703970
}
3971+
3972+
func TestIssue372(t *testing.T) {
3973+
type A int
3974+
type T struct {
3975+
_ int
3976+
*A
3977+
}
3978+
var v T
3979+
err := json.Unmarshal([]byte(`{"A":7}`), &v)
3980+
assertErr(t, err)
3981+
3982+
got := *v.A
3983+
expected := A(7)
3984+
if got != expected {
3985+
t.Errorf("unexpected result: %v != %v", got, expected)
3986+
}
3987+
}

internal/decoder/compile.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,15 @@ func compileStruct(typ *runtime.Type, structName, fieldName string, structTypeTo
393393
}
394394
allFields = append(allFields, fieldSet)
395395
}
396+
} else {
397+
fieldSet := &structFieldSet{
398+
dec: pdec,
399+
offset: field.Offset,
400+
isTaggedKey: tag.IsTaggedKey,
401+
key: field.Name,
402+
keyLen: int64(len(field.Name)),
403+
}
404+
allFields = append(allFields, fieldSet)
396405
}
397406
} else {
398407
fieldSet := &structFieldSet{

0 commit comments

Comments
 (0)