compiler: Create pointer type for all types with methods.

Reviewed-on: https://go-review.googlesource.com/16522

From-SVN: r229612
This commit is contained in:
Ian Lance Taylor 2015-10-30 23:00:06 +00:00
parent 27776f5530
commit 8af57ca269
2 changed files with 7 additions and 3 deletions

View File

@ -1,4 +1,4 @@
85994dd0a88d1b24b2ddfc9c9ab22ee16c9e8b54
16f69a4007a1903da4055a496882b514e05f45f3
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -2064,11 +2064,15 @@ Type::type_descriptor_constructor(Gogo* gogo, int runtime_type_kind,
++p;
go_assert(p->is_field_name("ptrToThis"));
if (name == NULL)
if (name == NULL && methods == NULL)
vals->push_back(Expression::make_nil(bloc));
else
{
Type* pt = Type::make_pointer_type(name);
Type* pt;
if (name != NULL)
pt = Type::make_pointer_type(name);
else
pt = Type::make_pointer_type(this);
vals->push_back(Expression::make_type_descriptor(pt, bloc));
}