[dev.typealias] go/types: implement type aliases
Now a TypeName is just that: a name for a type (not just Named and Basic types as before). If it happens to be an alias, its type won't be a Named or Basic type, or it won't have the same name. We can determine this externally. It may be useful to provide a helper predicate to make that test easily accessible, but we can get to that if there's an actual need. The field/method lookup code has become more general an simpler, which is a good sign. The changes in methodset.go are symmetric to the changes in lookup.go. Known issue: Cycles created via alias types are not properly detected at the moment. For #18130. Change-Id: I90a3206be13116f89c221b5ab4d0f577eec6c78a Reviewed-on: https://go-review.googlesource.com/35091 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
Showing