aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/json/decode_test.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2021-12-01 12:15:45 -0500
committerRuss Cox <rsc@golang.org>2021-12-13 18:45:54 +0000
commit2580d0e08d5e9f979b943758d3c49877fb2324cb (patch)
tree3aafccfd81087734156a1778ce2321adf345f271 /src/encoding/json/decode_test.go
parent083ef5462494e81ee23316245c5d65085a3f62d9 (diff)
downloadgo-2580d0e08d5e9f979b943758d3c49877fb2324cb.tar.xz
all: gofmt -w -r 'interface{} -> any' src
And then revert the bootstrap cmd directories and certain testdata. And adjust tests as needed. Not reverting the changes in std that are bootstrapped, because some of those changes would appear in API docs, and we want to use any consistently. Instead, rewrite 'any' to 'interface{}' in cmd/dist for those directories when preparing the bootstrap copy. A few files changed as a result of running gofmt -w not because of interface{} -> any but because they hadn't been updated for the new //go:build lines. Fixes #49884. Change-Id: Ie8045cba995f65bd79c694ec77a1b3d1fe01bb09 Reviewed-on: https://go-review.googlesource.com/c/go/+/368254 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/encoding/json/decode_test.go')
-rw-r--r--src/encoding/json/decode_test.go106
1 files changed, 53 insertions, 53 deletions
diff --git a/src/encoding/json/decode_test.go b/src/encoding/json/decode_test.go
index 96bf9fb5ff..c2c036b609 100644
--- a/src/encoding/json/decode_test.go
+++ b/src/encoding/json/decode_test.go
@@ -31,7 +31,7 @@ type U struct {
}
type V struct {
- F1 interface{}
+ F1 any
F2 int32
F3 Number
F4 *VOuter
@@ -62,18 +62,18 @@ func (*SS) UnmarshalJSON(data []byte) error {
// ifaceNumAsFloat64/ifaceNumAsNumber are used to test unmarshaling with and
// without UseNumber
-var ifaceNumAsFloat64 = map[string]interface{}{
+var ifaceNumAsFloat64 = map[string]any{
"k1": float64(1),
"k2": "s",
- "k3": []interface{}{float64(1), float64(2.0), float64(3e-3)},
- "k4": map[string]interface{}{"kk1": "s", "kk2": float64(2)},
+ "k3": []any{float64(1), float64(2.0), float64(3e-3)},
+ "k4": map[string]any{"kk1": "s", "kk2": float64(2)},
}
-var ifaceNumAsNumber = map[string]interface{}{
+var ifaceNumAsNumber = map[string]any{
"k1": Number("1"),
"k2": "s",
- "k3": []interface{}{Number("1"), Number("2.0"), Number("3e-3")},
- "k4": map[string]interface{}{"kk1": "s", "kk2": Number("2")},
+ "k3": []any{Number("1"), Number("2.0"), Number("3e-3")},
+ "k4": map[string]any{"kk1": "s", "kk2": Number("2")},
}
type tx struct {
@@ -262,9 +262,9 @@ type Ambig struct {
}
type XYZ struct {
- X interface{}
- Y interface{}
- Z interface{}
+ X any
+ Y any
+ Z any
}
type unexportedWithMethods struct{}
@@ -389,8 +389,8 @@ type mapStringToStringData struct {
type unmarshalTest struct {
in string
- ptr interface{} // new(type)
- out interface{}
+ ptr any // new(type)
+ out any
err error
useNumber bool
golden bool
@@ -414,13 +414,13 @@ var unmarshalTests = []unmarshalTest{
{in: `-5`, ptr: new(int16), out: int16(-5)},
{in: `2`, ptr: new(Number), out: Number("2"), useNumber: true},
{in: `2`, ptr: new(Number), out: Number("2")},
- {in: `2`, ptr: new(interface{}), out: float64(2.0)},
- {in: `2`, ptr: new(interface{}), out: Number("2"), useNumber: true},
+ {in: `2`, ptr: new(any), out: float64(2.0)},
+ {in: `2`, ptr: new(any), out: Number("2"), useNumber: true},
{in: `"a\u1234"`, ptr: new(string), out: "a\u1234"},
{in: `"http:\/\/"`, ptr: new(string), out: "http://"},
{in: `"g-clef: \uD834\uDD1E"`, ptr: new(string), out: "g-clef: \U0001D11E"},
{in: `"invalid: \uD834x\uDD1E"`, ptr: new(string), out: "invalid: \uFFFDx\uFFFD"},
- {in: "null", ptr: new(interface{}), out: nil},
+ {in: "null", ptr: new(any), out: nil},
{in: `{"X": [1,2,3], "Y": 4}`, ptr: new(T), out: T{Y: 4}, err: &UnmarshalTypeError{"array", reflect.TypeOf(""), 7, "T", "X"}},
{in: `{"X": 23}`, ptr: new(T), out: T{}, err: &UnmarshalTypeError{"number", reflect.TypeOf(""), 8, "T", "X"}}, {in: `{"x": 1}`, ptr: new(tx), out: tx{}},
{in: `{"x": 1}`, ptr: new(tx), out: tx{}},
@@ -428,8 +428,8 @@ var unmarshalTests = []unmarshalTest{
{in: `{"S": 23}`, ptr: new(W), out: W{}, err: &UnmarshalTypeError{"number", reflect.TypeOf(SS("")), 0, "W", "S"}},
{in: `{"F1":1,"F2":2,"F3":3}`, ptr: new(V), out: V{F1: float64(1), F2: int32(2), F3: Number("3")}},
{in: `{"F1":1,"F2":2,"F3":3}`, ptr: new(V), out: V{F1: Number("1"), F2: int32(2), F3: Number("3")}, useNumber: true},
- {in: `{"k1":1,"k2":"s","k3":[1,2.0,3e-3],"k4":{"kk1":"s","kk2":2}}`, ptr: new(interface{}), out: ifaceNumAsFloat64},
- {in: `{"k1":1,"k2":"s","k3":[1,2.0,3e-3],"k4":{"kk1":"s","kk2":2}}`, ptr: new(interface{}), out: ifaceNumAsNumber, useNumber: true},
+ {in: `{"k1":1,"k2":"s","k3":[1,2.0,3e-3],"k4":{"kk1":"s","kk2":2}}`, ptr: new(any), out: ifaceNumAsFloat64},
+ {in: `{"k1":1,"k2":"s","k3":[1,2.0,3e-3],"k4":{"kk1":"s","kk2":2}}`, ptr: new(any), out: ifaceNumAsNumber, useNumber: true},
// raw values with whitespace
{in: "\n true ", ptr: new(bool), out: true},
@@ -472,10 +472,10 @@ var unmarshalTests = []unmarshalTest{
{in: `[1, 2, 3]`, ptr: new(MustNotUnmarshalJSON), err: errors.New("MustNotUnmarshalJSON was used")},
// empty array to interface test
- {in: `[]`, ptr: new([]interface{}), out: []interface{}{}},
- {in: `null`, ptr: new([]interface{}), out: []interface{}(nil)},
- {in: `{"T":[]}`, ptr: new(map[string]interface{}), out: map[string]interface{}{"T": []interface{}{}}},
- {in: `{"T":null}`, ptr: new(map[string]interface{}), out: map[string]interface{}{"T": interface{}(nil)}},
+ {in: `[]`, ptr: new([]any), out: []any{}},
+ {in: `null`, ptr: new([]any), out: []any(nil)},
+ {in: `{"T":[]}`, ptr: new(map[string]any), out: map[string]any{"T": []any{}}},
+ {in: `{"T":null}`, ptr: new(map[string]any), out: map[string]any{"T": any(nil)}},
// composite tests
{in: allValueIndent, ptr: new(All), out: allValue},
@@ -1176,7 +1176,7 @@ func TestUnmarshal(t *testing.T) {
func TestUnmarshalMarshal(t *testing.T) {
initBig()
- var v interface{}
+ var v any
if err := Unmarshal(jsonBig, &v); err != nil {
t.Fatalf("Unmarshal: %v", err)
}
@@ -1248,7 +1248,7 @@ type Xint struct {
func TestUnmarshalInterface(t *testing.T) {
var xint Xint
- var i interface{} = &xint
+ var i any = &xint
if err := Unmarshal([]byte(`{"X":1}`), &i); err != nil {
t.Fatalf("Unmarshal: %v", err)
}
@@ -1382,8 +1382,8 @@ type All struct {
PSmall *Small
PPSmall **Small
- Interface interface{}
- PInterface *interface{}
+ Interface any
+ PInterface *any
unexported int
}
@@ -1717,9 +1717,9 @@ func intpp(x *int) **int {
}
var interfaceSetTests = []struct {
- pre interface{}
+ pre any
json string
- post interface{}
+ post any
}{
{"foo", `"bar"`, "bar"},
{"foo", `2`, 2.0},
@@ -1738,7 +1738,7 @@ var interfaceSetTests = []struct {
func TestInterfaceSet(t *testing.T) {
for _, tt := range interfaceSetTests {
- b := struct{ X interface{} }{tt.pre}
+ b := struct{ X any }{tt.pre}
blob := `{"X":` + tt.json + `}`
if err := Unmarshal([]byte(blob), &b); err != nil {
t.Errorf("Unmarshal %#q: %v", blob, err)
@@ -1768,7 +1768,7 @@ type NullTest struct {
PBool *bool
Map map[string]string
Slice []string
- Interface interface{}
+ Interface any
PRaw *RawMessage
PTime *time.Time
@@ -1989,7 +1989,7 @@ func TestSliceOfCustomByte(t *testing.T) {
}
var decodeTypeErrorTests = []struct {
- dest interface{}
+ dest any
src string
}{
{new(string), `{"user": "name"}`}, // issue 4628.
@@ -2022,7 +2022,7 @@ var unmarshalSyntaxTests = []string{
}
func TestUnmarshalSyntax(t *testing.T) {
- var x interface{}
+ var x any
for _, src := range unmarshalSyntaxTests {
err := Unmarshal([]byte(src), &x)
if _, ok := err.(*SyntaxError); !ok {
@@ -2035,8 +2035,8 @@ func TestUnmarshalSyntax(t *testing.T) {
// Issue 4660
type unexportedFields struct {
Name string
- m map[string]interface{} `json:"-"`
- m2 map[string]interface{} `json:"abcd"`
+ m map[string]any `json:"-"`
+ m2 map[string]any `json:"abcd"`
s []int `json:"-"`
}
@@ -2087,7 +2087,7 @@ func TestUnmarshalJSONLiteralError(t *testing.T) {
// Issue 3717
func TestSkipArrayObjects(t *testing.T) {
json := `[{}]`
- var dest [0]interface{}
+ var dest [0]any
err := Unmarshal([]byte(json), &dest)
if err != nil {
@@ -2102,8 +2102,8 @@ func TestPrefilled(t *testing.T) {
// Values here change, cannot reuse table across runs.
var prefillTests = []struct {
in string
- ptr interface{}
- out interface{}
+ ptr any
+ out any
}{
{
in: `{"X": 1, "Y": 2}`,
@@ -2112,8 +2112,8 @@ func TestPrefilled(t *testing.T) {
},
{
in: `{"X": 1, "Y": 2}`,
- ptr: &map[string]interface{}{"X": float32(3), "Y": int16(4), "Z": 1.5},
- out: &map[string]interface{}{"X": float64(1), "Y": float64(2), "Z": 1.5},
+ ptr: &map[string]any{"X": float32(3), "Y": int16(4), "Z": 1.5},
+ out: &map[string]any{"X": float64(1), "Y": float64(2), "Z": 1.5},
},
{
in: `[2]`,
@@ -2150,7 +2150,7 @@ func TestPrefilled(t *testing.T) {
}
var invalidUnmarshalTests = []struct {
- v interface{}
+ v any
want string
}{
{nil, "json: Unmarshal(nil)"},
@@ -2173,7 +2173,7 @@ func TestInvalidUnmarshal(t *testing.T) {
}
var invalidUnmarshalTextTests = []struct {
- v interface{}
+ v any
want string
}{
{nil, "json: Unmarshal(nil)"},
@@ -2205,7 +2205,7 @@ func TestInvalidStringOption(t *testing.T) {
M map[string]string `json:",string"`
S []string `json:",string"`
A [1]string `json:",string"`
- I interface{} `json:",string"`
+ I any `json:",string"`
P *int `json:",string"`
}{M: make(map[string]string), S: make([]string, 0), I: num, P: &num}
@@ -2276,8 +2276,8 @@ func TestUnmarshalEmbeddedUnexported(t *testing.T) {
tests := []struct {
in string
- ptr interface{}
- out interface{}
+ ptr any
+ out any
err error
}{{
// Error since we cannot set S1.embed1, but still able to set S1.R.
@@ -2375,7 +2375,7 @@ func TestUnmarshalErrorAfterMultipleJSON(t *testing.T) {
dec := NewDecoder(strings.NewReader(tt.in))
var err error
for {
- var v interface{}
+ var v any
if err = dec.Decode(&v); err != nil {
break
}
@@ -2403,7 +2403,7 @@ func TestUnmarshalPanic(t *testing.T) {
// The decoder used to hang if decoding into an interface pointing to its own address.
// See golang.org/issues/31740.
func TestUnmarshalRecursivePointer(t *testing.T) {
- var v interface{}
+ var v any
v = &v
data := []byte(`{"a": "b"}`)
@@ -2517,36 +2517,36 @@ func TestUnmarshalMaxDepth(t *testing.T) {
targets := []struct {
name string
- newValue func() interface{}
+ newValue func() any
}{
{
name: "unstructured",
- newValue: func() interface{} {
- var v interface{}
+ newValue: func() any {
+ var v any
return &v
},
},
{
name: "typed named field",
- newValue: func() interface{} {
+ newValue: func() any {
v := struct {
- A interface{} `json:"a"`
+ A any `json:"a"`
}{}
return &v
},
},
{
name: "typed missing field",
- newValue: func() interface{} {
+ newValue: func() any {
v := struct {
- B interface{} `json:"b"`
+ B any `json:"b"`
}{}
return &v
},
},
{
name: "custom unmarshaler",
- newValue: func() interface{} {
+ newValue: func() any {
v := unmarshaler{}
return &v
},