diff options
| author | 2025-04-14 09:43:56 +0200 | |
|---|---|---|
| committer | 2025-04-14 09:43:56 +0200 | |
| commit | 51b9ef5c346f333e558eca38fd954464322f3b7d (patch) | |
| tree | bf5cd0de887a27c1afc66345b1a464921d96e503 /vendor/github.com/bytedance/sonic/internal/decoder/optdec/compiler.go | |
| parent | [docs] Remind the user that password resets don't work without restarting. (#... (diff) | |
| download | gotosocial-51b9ef5c346f333e558eca38fd954464322f3b7d.tar.xz | |
[chore]: Bump github.com/gin-contrib/gzip from 1.2.2 to 1.2.3 (#4000)
Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/gin-contrib/gzip/releases)
- [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml)
- [Commits](https://github.com/gin-contrib/gzip/compare/v1.2.2...v1.2.3)
---
updated-dependencies:
- dependency-name: github.com/gin-contrib/gzip
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/decoder/optdec/compiler.go')
| -rw-r--r-- | vendor/github.com/bytedance/sonic/internal/decoder/optdec/compiler.go | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/optdec/compiler.go b/vendor/github.com/bytedance/sonic/internal/decoder/optdec/compiler.go index 7d9d60a01..b3ca7a4ee 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/optdec/compiler.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/optdec/compiler.go @@ -1,7 +1,6 @@ package optdec import ( - "encoding/json" "fmt" "reflect" @@ -169,7 +168,9 @@ func (c *compiler) compileBasic(vt reflect.Type) decFunc { case reflect.Struct: return c.compileStruct(vt) default: - panic(&json.UnmarshalTypeError{Type: vt}) + return &unsupportedTypeDecoder{ + typ: rt.UnpackType(vt), + } } } @@ -263,7 +264,7 @@ func (c *compiler) compileSlice(vt reflect.Type) decFunc { if et.IsUint64() { return &sliceU64Decoder{} } - if et.Kind() == reflect.String { + if et.Kind() == reflect.String && et != rt.JsonNumberType { return &sliceStringDecoder{} } @@ -343,7 +344,7 @@ func (c *compiler) compileMap(vt reflect.Type) decFunc { // Some common integer map later mt := rt.MapType(rt.UnpackType(vt)) - if mt.Key.Kind() == reflect.String { + if mt.Key.Kind() == reflect.String && mt.Key != rt.JsonNumberType { return &mapStrKeyDecoder{ mapType: mt, assign: rt.GetMapStrAssign(vt), @@ -399,7 +400,7 @@ func tryCompileKeyUnmarshaler(vt reflect.Type) decKey { return decodeKeyTextUnmarshaler } - /* not support map key with `json.Unmarshaler` */ + /* NOTE: encoding/json not support map key with `json.Unmarshaler` */ return nil } @@ -413,8 +414,18 @@ func (c *compiler) compileMapKey(vt reflect.Type) decKey { return decodeKeyU8 case reflect.Uint16: return decodeKeyU16 + // NOTE: actually, encoding/json can't use float as map key + case reflect.Float32: + return decodeFloat32Key + case reflect.Float64: + return decodeFloat64Key + case reflect.String: + if rt.UnpackType(vt.Key()) == rt.JsonNumberType { + return decodeJsonNumberKey + } + fallthrough default: - panic(&json.UnmarshalTypeError{Type: vt}) + return nil } } |
