]> Cypherpunks repositories - gostls13.git/commitdiff
reflect: restore ifaceIndir function for now
authorIan Lance Taylor <iant@golang.org>
Thu, 9 May 2024 22:40:34 +0000 (15:40 -0700)
committerGopher Robot <gobot@golang.org>
Thu, 9 May 2024 23:06:39 +0000 (23:06 +0000)
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>
src/reflect/type.go

index 5ad74aabfcaf25e5e06702743bb8e034ddbe095e..47f7e45d7c8dc2e981f7109a76daf4602c8809a2 100644 (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
+}