diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-06-06 14:50:16 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-06-06 14:50:16 +0000 |
commit | 1d6ccc5f2984952ee71b0bea511cffcd5a30725d (patch) | |
tree | cffc231c7ade9a8ba7e8070fec2ec552b4775e96 /libgo/go/reflect/all_test.go | |
parent | 1336795a5669b19722fdbc256a3bfe801b54eea7 (diff) | |
download | gcc-1d6ccc5f2984952ee71b0bea511cffcd5a30725d.zip gcc-1d6ccc5f2984952ee71b0bea511cffcd5a30725d.tar.gz gcc-1d6ccc5f2984952ee71b0bea511cffcd5a30725d.tar.bz2 |
reflect: fix StructOf hash and string
Adjust the hash and string fields computed by StructOf to match the
values that the compiler computes for a struct type with the same
field names and types. This makes the reflect code match the
compiler's Type::hash_for_method and Type::reflection methods.
Fixes golang/go#25284
Reviewed-on: https://go-review.googlesource.com/116515
From-SVN: r261235
Diffstat (limited to 'libgo/go/reflect/all_test.go')
-rw-r--r-- | libgo/go/reflect/all_test.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libgo/go/reflect/all_test.go b/libgo/go/reflect/all_test.go index 3378640..96b57ef 100644 --- a/libgo/go/reflect/all_test.go +++ b/libgo/go/reflect/all_test.go @@ -4411,6 +4411,17 @@ func TestStructOf(t *testing.T) { }) // check that type already in binary is found checkSameType(t, StructOf(fields[2:3]), struct{ Y uint64 }{}) + + // gccgo used to fail this test. + type structFieldType interface{} + checkSameType(t, + StructOf([]StructField{ + StructField{ + Name: "F", + Type: TypeOf((*structFieldType)(nil)).Elem(), + }, + }), + struct{ F structFieldType }{}) } func TestStructOfExportRules(t *testing.T) { |