1
0
mirror of https://github.com/golang/go synced 2024-11-15 03:50:33 -07:00

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 <dmitshur@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
Ian Lance Taylor 2024-05-09 15:40:34 -07:00 committed by Gopher Robot
parent e0aab32c7f
commit 2064413b54

View File

@ -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
}