Commit ee756af8 by Ian Lance Taylor

compiler: Don't assign to embedded builtins in imported struct composite

literals.

Fixes https://github.com/golang/go/issues/6832.

From-SVN: r219313
parent 50bb6c8e
...@@ -12937,7 +12937,8 @@ Composite_literal_expression::lower_struct(Gogo* gogo, Type* type) ...@@ -12937,7 +12937,8 @@ Composite_literal_expression::lower_struct(Gogo* gogo, Type* type)
pf != st->fields()->end(); pf != st->fields()->end();
++pf) ++pf)
{ {
if (Gogo::is_hidden_name(pf->field_name())) if (Gogo::is_hidden_name(pf->field_name())
|| pf->is_embedded_builtin(gogo))
error_at(this->location(), error_at(this->location(),
"assignment of unexported field %qs in %qs literal", "assignment of unexported field %qs in %qs literal",
Gogo::message_name(pf->field_name()).c_str(), Gogo::message_name(pf->field_name()).c_str(),
...@@ -13114,7 +13115,8 @@ Composite_literal_expression::lower_struct(Gogo* gogo, Type* type) ...@@ -13114,7 +13115,8 @@ Composite_literal_expression::lower_struct(Gogo* gogo, Type* type)
if (type->named_type() != NULL if (type->named_type() != NULL
&& type->named_type()->named_object()->package() != NULL && type->named_type()->named_object()->package() != NULL
&& Gogo::is_hidden_name(sf->field_name())) && (Gogo::is_hidden_name(sf->field_name())
|| sf->is_embedded_builtin(gogo)))
error_at(name_expr->location(), error_at(name_expr->location(),
"assignment of unexported field %qs in %qs literal", "assignment of unexported field %qs in %qs literal",
Gogo::message_name(sf->field_name()).c_str(), Gogo::message_name(sf->field_name()).c_str(),
......
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