Commit b1d88684 by Ian Lance Taylor

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
parent 44ef0300
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) ...@@ -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:
......
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