• Robert Griesemer's avatar
    [dev.typealias] go/types: implement type aliases · 80d8b69e
    Robert Griesemer authored
    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: 's avatarAlan Donovan <adonovan@google.com>
    80d8b69e
methodset.go 7.34 KB