reflect: omit anonymous field name from StructOf type string

This makes the reflect package match the compiler for StructOf
with an embedded field.

Fixes #24781

Change-Id: Ice64b167cbe0b9d30a953c5d8e2a86f3ad1158bf
Reviewed-on: https://go-review.googlesource.com/c/go/+/567897
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@golang.org>
Commit-Queue: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
This commit is contained in:
Ian Lance Taylor 2024-03-02 19:27:21 -08:00 committed by Gopher Robot
parent f0d6ddfac0
commit 2ff89341f6
2 changed files with 17 additions and 2 deletions

View file

@ -6112,6 +6112,20 @@ func TestStructOfTooLarge(t *testing.T) {
}
}
func TestStructOfAnonymous(t *testing.T) {
var s any = struct{ D1 }{}
f := TypeOf(s).Field(0)
ds := StructOf([]StructField{f})
st := TypeOf(s)
dt := New(ds).Elem()
if st != dt.Type() {
t.Errorf("StructOf returned %s, want %s", dt.Type(), st)
}
// This should not panic.
_ = dt.Interface().(struct{ D1 })
}
func TestChanOf(t *testing.T) {
// check construction and use of type not in binary
type T string