Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 39 additions & 39 deletions json/codec.go
Original file line number Diff line number Diff line change
Expand Up @@ -1065,51 +1065,51 @@ type sliceHeader struct {

var (
nullType = reflect.TypeOf(nil)
boolType = reflect.TypeOf(false)

intType = reflect.TypeOf(int(0))
int8Type = reflect.TypeOf(int8(0))
int16Type = reflect.TypeOf(int16(0))
int32Type = reflect.TypeOf(int32(0))
int64Type = reflect.TypeOf(int64(0))

uintType = reflect.TypeOf(uint(0))
uint8Type = reflect.TypeOf(uint8(0))
uint16Type = reflect.TypeOf(uint16(0))
uint32Type = reflect.TypeOf(uint32(0))
uint64Type = reflect.TypeOf(uint64(0))
uintptrType = reflect.TypeOf(uintptr(0))

float32Type = reflect.TypeOf(float32(0))
float64Type = reflect.TypeOf(float64(0))

bigIntType = reflect.TypeOf(new(big.Int))
numberType = reflect.TypeOf(json.Number(""))
stringType = reflect.TypeOf("")
stringsType = reflect.TypeOf([]string(nil))
bytesType = reflect.TypeOf(([]byte)(nil))
durationType = reflect.TypeOf(time.Duration(0))
timeType = reflect.TypeOf(time.Time{})
rawMessageType = reflect.TypeOf(RawMessage(nil))
boolType = reflect.TypeFor[bool]()

intType = reflect.TypeFor[int]()
int8Type = reflect.TypeFor[int8]()
int16Type = reflect.TypeFor[int16]()
int32Type = reflect.TypeFor[int32]()
int64Type = reflect.TypeFor[int64]()

uintType = reflect.TypeFor[uint]()
uint8Type = reflect.TypeFor[uint8]()
uint16Type = reflect.TypeFor[uint16]()
uint32Type = reflect.TypeFor[uint32]()
uint64Type = reflect.TypeFor[uint64]()
uintptrType = reflect.TypeFor[uintptr]()

float32Type = reflect.TypeFor[float32]()
float64Type = reflect.TypeFor[float64]()

bigIntType = reflect.TypeFor[*big.Int]()
numberType = reflect.TypeFor[json.Number]()
stringType = reflect.TypeFor[string]()
stringsType = reflect.TypeFor[[]string]()
bytesType = reflect.TypeFor[[]byte]()
durationType = reflect.TypeFor[time.Duration]()
timeType = reflect.TypeFor[time.Time]()
rawMessageType = reflect.TypeFor[RawMessage]()

numberPtrType = reflect.PointerTo(numberType)
durationPtrType = reflect.PointerTo(durationType)
timePtrType = reflect.PointerTo(timeType)
rawMessagePtrType = reflect.PointerTo(rawMessageType)

sliceInterfaceType = reflect.TypeOf(([]any)(nil))
sliceStringType = reflect.TypeOf(([]any)(nil))
mapStringInterfaceType = reflect.TypeOf((map[string]any)(nil))
mapStringRawMessageType = reflect.TypeOf((map[string]RawMessage)(nil))
mapStringStringType = reflect.TypeOf((map[string]string)(nil))
mapStringStringSliceType = reflect.TypeOf((map[string][]string)(nil))
mapStringBoolType = reflect.TypeOf((map[string]bool)(nil))

interfaceType = reflect.TypeOf((*any)(nil)).Elem()
jsonMarshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem()
jsonUnmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem()
textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()
textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()
sliceInterfaceType = reflect.TypeFor[[]any]()
sliceStringType = reflect.TypeFor[[]any]()
mapStringInterfaceType = reflect.TypeFor[map[string]any]()
mapStringRawMessageType = reflect.TypeFor[map[string]RawMessage]()
mapStringStringType = reflect.TypeFor[map[string]string]()
mapStringStringSliceType = reflect.TypeFor[map[string][]string]()
mapStringBoolType = reflect.TypeFor[map[string]bool]()

interfaceType = reflect.TypeFor[any]()
jsonMarshalerType = reflect.TypeFor[Marshaler]()
jsonUnmarshalerType = reflect.TypeFor[Unmarshaler]()
textMarshalerType = reflect.TypeFor[encoding.TextMarshaler]()
textUnmarshalerType = reflect.TypeFor[encoding.TextUnmarshaler]()

bigIntDecoder = constructJSONUnmarshalerDecodeFunc(bigIntType, false)
)
Expand Down
Loading