[dev.typealias] go/types: export TypeName.IsAlias so clients can use it

For #18130.

Change-Id: I634eaaeaa11e92fc31219d70419fdb4a7aa6e0b4
Reviewed-on: https://go-review.googlesource.com/35099
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Robert Griesemer 2016-12-22 14:42:05 -08:00
parent aa1f0681bc
commit 5ceec42dc0
3 changed files with 6 additions and 6 deletions

View file

@ -163,7 +163,7 @@ func NewTypeName(pos token.Pos, pkg *Package, name string, typ Type) *TypeName {
return &TypeName{object{nil, pos, pkg, name, typ, 0, token.NoPos}}
}
func (obj *TypeName) isAlias() bool {
func (obj *TypeName) IsAlias() bool {
switch t := obj.typ.(type) {
case nil:
return false
@ -330,11 +330,11 @@ func writeObject(buf *bytes.Buffer, obj Object, qf Qualifier) {
if tname != nil {
// We have a type object: Don't print anything more for
// basic types since there's no more information (names
// are the same; see also comment in TypeName.isAlias).
// are the same; see also comment in TypeName.IsAlias).
if _, ok := typ.(*Basic); ok {
return
}
if tname.isAlias() {
if tname.IsAlias() {
buf.WriteString(" =")
} else {
typ = typ.Underlying()

View file

@ -8,8 +8,8 @@ import "testing"
func TestIsAlias(t *testing.T) {
check := func(obj *TypeName, want bool) {
if got := obj.isAlias(); got != want {
t.Errorf("%v: got isAlias = %v; want %v", obj, got, want)
if got := obj.IsAlias(); got != want {
t.Errorf("%v: got IsAlias = %v; want %v", obj, got, want)
}
}

View file

@ -139,7 +139,7 @@ func identical(x, y Type, cmpTags bool, p *ifacePair) bool {
case *Basic:
// Basic types are singletons except for the rune and byte
// aliases, thus we cannot solely rely on the x == y check
// above. See also comment in TypeName.isAlias.
// above. See also comment in TypeName.IsAlias.
if y, ok := y.(*Basic); ok {
return x.kind == y.kind
}