]> Cypherpunks repositories - gostls13.git/commit
encoding/json: don't marshal unexported embedded fields of non struct type
authorthoeni <thoeni@gmail.com>
Thu, 1 Dec 2016 21:57:39 +0000 (21:57 +0000)
committerRuss Cox <rsc@golang.org>
Wed, 14 Jun 2017 19:01:08 +0000 (19:01 +0000)
commit296b35382c82081d6c90dcec570e6491a2b2598a
treea86a782db8baddc86c55f001fb6dcbbc9cbd9ae4
parente2160cc5713e4954b67ec4eabdb893d2880e10a0
encoding/json: don't marshal unexported embedded fields of non struct type

Marshal must process unexported embedded fields of struct type,
looking for exported fields in those structs. However, it must
not process unexported embedded fields of non-struct type.

For example, consider:

    type t1 struct {
        X int
    }
    type t2 int
    type T struct {
        t1
        t2
    }

When considering T, Marshal must process t1 to find t1.X.
Marshal must not process t2, but it was. Fix that.

Fixes #18009

Change-Id: I62ba0b65ba30fd927990e101a26405a9998787a3
Reviewed-on: https://go-review.googlesource.com/33773
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/encoding/json/encode.go
src/encoding/json/encode_test.go