From: Ian Lance Taylor Date: Thu, 9 May 2024 22:40:34 +0000 (-0700) Subject: reflect: restore ifaceIndir function for now X-Git-Tag: go1.23rc1~402 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2064413b545876ff93d5e985824986c2e06a619a;p=gostls13.git reflect: restore ifaceIndir function for now CL 583755 removed all uses of the ifaceIndir function, and the function itself. Unfortunately, ifaceIndir is accessed using go:linkname by the popular github.com/goccy/go-json package. A bug has been filed to fix this upstream: https://github.com/goccy/go-json/issues/506 Until that bug is fixed and the fix is distributed, keep this function available. With luck we can remove this in the 1.24 release. For #67279 Change-Id: I15fccf82d7a172a0b15cdbefb0a0a48381998938 Reviewed-on: https://go-review.googlesource.com/c/go/+/584676 Reviewed-by: Dmitri Shuralyov Auto-Submit: Ian Lance Taylor Reviewed-by: Dmitri Shuralyov LUCI-TryBot-Result: Go LUCI Reviewed-by: Ian Lance Taylor --- diff --git a/src/reflect/type.go b/src/reflect/type.go index 5ad74aabfc..47f7e45d7c 100644 --- a/src/reflect/type.go +++ b/src/reflect/type.go @@ -3031,3 +3031,16 @@ func TypeFor[T any]() Type { } return TypeOf((*T)(nil)).Elem() // only for an interface kind } + +// ifaceIndir reports whether t is stored indirectly in an interface value. +// This function is no longer called by the reflect package. +// Unfortunately, it is accessed using go:linkname by the popular +// github.com/goccy/go-json package. +// A bug has been filed to fix this upstream: +// https://github.com/goccy/go-json/issues/506 +// Until that bug is fixed and the fix is distributed, +// keep this function available. +// With luck we can remove this in the 1.24 release. +func ifaceIndir(t *abi.Type) bool { + return t.Kind_&abi.KindDirectIface == 0 +}