]> Cypherpunks repositories - gostls13.git/commit
[dev.typealias] go/types: implement type aliases
authorRobert Griesemer <gri@golang.org>
Tue, 20 Dec 2016 01:55:47 +0000 (17:55 -0800)
committerRobert Griesemer <gri@golang.org>
Tue, 10 Jan 2017 20:29:54 +0000 (20:29 +0000)
commit80d8b69e95a4514f6567d3b314aa3434ec924363
treeea9ebf6b5d5df4e107acbe9d443293a97fbe2175
parenta917097b5e5fd42bb4e6f4884a58544330d34984
[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>
src/go/types/call.go
src/go/types/check_test.go
src/go/types/decl.go
src/go/types/lookup.go
src/go/types/methodset.go
src/go/types/object.go
src/go/types/resolver.go
src/go/types/testdata/decls0.src
src/go/types/testdata/decls4.src [new file with mode: 0644]
src/go/types/typestring.go
src/go/types/typexpr.go