compiler: use the underlying type to build placeholder type for alias
When asking for a placeholder type of an alias type, build a placeholder for the underlying type, instead of treating the alias as a named type and calling get_backend. The latter may fail as we may not be ready to build a complete backend type. We have already used a unified backend type for alias type and its underlying type. Do the same for placeholders as well. Reviewed-on: https://go-review.googlesource.com/138635 From-SVN: r264773
This commit is contained in:
parent
44ef03008c
commit
b1d88684bb
2 changed files with 3 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
||||||
2f56d51c6b3104242613c74b02fa6c63a2fe16c5
|
53d0d7ca278a5612fcdb5fb098e7bf950a0178ef
|
||||||
|
|
||||||
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.
|
||||||
|
|
|
@ -1125,6 +1125,8 @@ Type::get_backend_placeholder(Gogo* gogo)
|
||||||
case TYPE_FORWARD:
|
case TYPE_FORWARD:
|
||||||
// Named types keep track of their own dependencies and manage
|
// Named types keep track of their own dependencies and manage
|
||||||
// their own placeholders.
|
// their own placeholders.
|
||||||
|
if (this->named_type() != NULL && this->named_type()->is_alias())
|
||||||
|
return this->unalias()->get_backend_placeholder(gogo);
|
||||||
return this->get_backend(gogo);
|
return this->get_backend(gogo);
|
||||||
|
|
||||||
case TYPE_INTERFACE:
|
case TYPE_INTERFACE:
|
||||||
|
|
Loading…
Add table
Reference in a new issue