summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/encoder/compiler.go')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/encoder/compiler.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go b/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go
index 737dd3e07..eeeb119cc 100644
--- a/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go
+++ b/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go
@@ -287,6 +287,12 @@ func (self *Compiler) compileMapBody(p *ir.Program, sp int, vt reflect.Type) {
}
func (self *Compiler) compileMapBodyKey(p *ir.Program, vk reflect.Type) {
+ // followed as `encoding/json/emcode.go:resolveKeyName
+ if vk.Kind() == reflect.String {
+ self.compileString(p, vk)
+ return
+ }
+
if !vk.Implements(vars.EncodingTextMarshalerType) {
self.compileMapBodyTextKey(p, vk)
} else {