From 56d3e84bb0195913e1d932d6fe8251047091076b Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 31 Jul 2023 15:18:12 -0700 Subject: encoding/json: use reflect.TypeFor for known types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For #60088 Change-Id: I2e471c76de62944b14472966b63f5778124b9b8b Reviewed-on: https://go-review.googlesource.com/c/go/+/514655 TryBot-Result: Gopher Robot Run-TryBot: Ian Lance Taylor Run-TryBot: Ian Lance Taylor Run-TryBot: Joseph Tsai Auto-Submit: Ian Lance Taylor Reviewed-by: Ian Lance Taylor Reviewed-by: Joseph Tsai Reviewed-by: David Chase Reviewed-by: Daniel Martí --- src/encoding/json/decode.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/encoding/json/decode.go') diff --git a/src/encoding/json/decode.go b/src/encoding/json/decode.go index 2142816d88..1119275f51 100644 --- a/src/encoding/json/decode.go +++ b/src/encoding/json/decode.go @@ -591,7 +591,7 @@ func (d *decodeState) array(v reflect.Value) error { } var nullLiteral = []byte("null") -var textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() +var textUnmarshalerType = reflect.TypeFor[encoding.TextUnmarshaler]() // object consumes an object from d.data[d.off-1:], decoding into v. // The first byte ('{') of the object has been read already. @@ -829,12 +829,12 @@ func (d *decodeState) convertNumber(s string) (any, error) { } f, err := strconv.ParseFloat(s, 64) if err != nil { - return nil, &UnmarshalTypeError{Value: "number " + s, Type: reflect.TypeOf(0.0), Offset: int64(d.off)} + return nil, &UnmarshalTypeError{Value: "number " + s, Type: reflect.TypeFor[float64](), Offset: int64(d.off)} } return f, nil } -var numberType = reflect.TypeOf(Number("")) +var numberType = reflect.TypeFor[Number]() // literalStore decodes a literal stored in item into v. // -- cgit v1.3-6-g1900