From: Sean Liao Date: Mon, 17 Nov 2025 19:16:37 +0000 (+0000) Subject: encoding/json: remove linknames X-Git-Tag: go1.26rc1~223 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a662badab918d7708bbc750f24b9c7313520e2b0;p=gostls13.git encoding/json: remove linknames The linknames have been removed in the latest commits: isValidNumber, typeFields: https://github.com/bytedance/sonic/commit/908af5dfaf7d509db1f2c2b1c43f4df728db80a6 unquoteBytes: https://github.com/bytedance/sonic/commit/8e9090a84be10962046197f1867d297d3e73020a For #67401 Change-Id: I30b057137932fcf267014ab5470c417298765249 Reviewed-on: https://go-review.googlesource.com/c/go/+/721160 LUCI-TryBot-Result: Go LUCI Reviewed-by: Joseph Tsai Reviewed-by: Junyang Shao Reviewed-by: Mark Freeman --- diff --git a/src/encoding/json/decode.go b/src/encoding/json/decode.go index 46f9ed2da9..5ff1014dc5 100644 --- a/src/encoding/json/decode.go +++ b/src/encoding/json/decode.go @@ -1190,15 +1190,6 @@ func unquote(s []byte) (t string, ok bool) { return } -// unquoteBytes should be an internal detail, -// but widely used packages access it using linkname. -// Notable members of the hall of shame include: -// - github.com/bytedance/sonic -// -// Do not remove or change the type signature. -// See go.dev/issue/67401. -// -//go:linkname unquoteBytes func unquoteBytes(s []byte) (t []byte, ok bool) { if len(s) < 2 || s[0] != '"' || s[len(s)-1] != '"' { return diff --git a/src/encoding/json/encode.go b/src/encoding/json/encode.go index 1b7942dd3a..9bdc270f85 100644 --- a/src/encoding/json/encode.go +++ b/src/encoding/json/encode.go @@ -633,17 +633,6 @@ func stringEncoder(e *encodeState, v reflect.Value, opts encOpts) { } } -// isValidNumber reports whether s is a valid JSON number literal. -// -// isValidNumber should be an internal detail, -// but widely used packages access it using linkname. -// Notable members of the hall of shame include: -// - github.com/bytedance/sonic -// -// Do not remove or change the type signature. -// See go.dev/issue/67401. -// -//go:linkname isValidNumber func isValidNumber(s string) bool { // This function implements the JSON numbers grammar. // See https://tools.ietf.org/html/rfc7159#section-6 @@ -1101,19 +1090,6 @@ type isZeroer interface { var isZeroerType = reflect.TypeFor[isZeroer]() -// typeFields returns a list of fields that JSON should recognize for the given type. -// The algorithm is breadth-first search over the set of structs to include - the top struct -// and then any reachable anonymous structs. -// -// typeFields should be an internal detail, -// but widely used packages access it using linkname. -// Notable members of the hall of shame include: -// - github.com/bytedance/sonic -// -// Do not remove or change the type signature. -// See go.dev/issue/67401. -// -//go:linkname typeFields func typeFields(t reflect.Type) structFields { // Anonymous fields to explore at the current level and the next. current := []field{}