Commit 4d0bf3e1 by Ian Lance Taylor

compiler: omit field name for embedded fields in reflection string

    
    This matches the gc compiler.
    
    The test case was sent for the master repo as
    https://golang.org/cl/91138.
    
    Fixes golang/go#23620
    
    Reviewed-on: https://go-review.googlesource.com/91139

From-SVN: r257300
parent fc876f22
b833695618d1a5d9d531f5ba0f9c07c7e35e0073 023c3d4358d101c71ac1436065690eaec2ce138e
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -6417,11 +6417,11 @@ Struct_type::do_reflection(Gogo* gogo, std::string* ret) const ...@@ -6417,11 +6417,11 @@ Struct_type::do_reflection(Gogo* gogo, std::string* ret) const
if (p != this->fields_->begin()) if (p != this->fields_->begin())
ret->push_back(';'); ret->push_back(';');
ret->push_back(' '); ret->push_back(' ');
if (p->is_anonymous()) if (!p->is_anonymous())
ret->push_back('?'); {
else ret->append(Gogo::unpack_hidden_name(p->field_name()));
ret->append(Gogo::unpack_hidden_name(p->field_name())); ret->push_back(' ');
ret->push_back(' '); }
if (p->is_anonymous() if (p->is_anonymous()
&& p->type()->named_type() != NULL && p->type()->named_type() != NULL
&& p->type()->named_type()->is_alias()) && p->type()->named_type()->is_alias())
......
...@@ -170,6 +170,14 @@ var typeTests = []pair{ ...@@ -170,6 +170,14 @@ var typeTests = []pair{
}{}, }{},
"interface { reflect_test.a(func(func(int) int) func(func(int)) int); reflect_test.b() }", "interface { reflect_test.a(func(func(int) int) func(func(int)) int); reflect_test.b() }",
}, },
{struct {
x struct {
int32
int64
}
}{},
"struct { int32; int64 }",
},
} }
var valueTests = []pair{ var valueTests = []pair{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment