diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-10 15:27:46 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-10 21:48:22 -0700 |
commit | 04daa09e1911d7bdabe87e452200b2de2c5ca7c9 (patch) | |
tree | 4e125b226bec6c9ec33335c4d9ff3bdfd874242c /decode.go | |
parent | 1f0abce0bf4061261572f6ed2f815f71647cc7e5 (diff) |
Be more careful about importing encoding/json
Diffstat (limited to 'decode.go')
-rw-r--r-- | decode.go | 15 |
1 files changed, 3 insertions, 12 deletions
@@ -14,7 +14,6 @@ package lowmemjson import ( "bytes" "encoding" - "encoding/json" "fmt" "io" "reflect" @@ -357,14 +356,6 @@ func (dec *Decoder) limitingScanner() io.RuneScanner { // decoder main //////////////////////////////////////////////////////////////////////////////////// -var ( - rawMessagePtrType = reflect.TypeOf((*json.RawMessage)(nil)) - decodableType = reflect.TypeOf((*Decodable)(nil)).Elem() - jsonUnmarshalerType = reflect.TypeOf((*json.Unmarshaler)(nil)).Elem() - textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() - float64Type = reflect.TypeOf(float64(0)) -) - var kind2bits = map[reflect.Kind]int{ reflect.Int: int(32 << (^uint(0) >> 63)), reflect.Int8: 8, @@ -393,7 +384,7 @@ func (dec *Decoder) decode(val reflect.Value, nullOK bool) { t := dec.peekRuneType() var buf bytes.Buffer dec.scan(&buf) - if err := val.Addr().Interface().(*json.RawMessage).UnmarshalJSON(buf.Bytes()); err != nil { + if err := val.Addr().Interface().(*RawMessage).UnmarshalJSON(buf.Bytes()); err != nil { dec.panicType(t.JSONType(), reflect.PointerTo(typ), err) } case val.CanAddr() && reflect.PointerTo(typ).Implements(decodableType): @@ -410,7 +401,7 @@ func (dec *Decoder) decode(val reflect.Value, nullOK bool) { t := dec.peekRuneType() var buf bytes.Buffer dec.scan(&buf) - obj := val.Addr().Interface().(json.Unmarshaler) + obj := val.Addr().Interface().(jsonUnmarshaler) if err := obj.UnmarshalJSON(buf.Bytes()); err != nil { dec.panicType(t.JSONType(), reflect.PointerTo(typ), err) } @@ -826,7 +817,7 @@ func (dec *Decoder) decodeAny() any { case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': var buf strings.Builder dec.scan(&buf) - num := json.Number(buf.String()) + num := Number(buf.String()) if dec.useNumber { return num } |