tools/go
Peter Collingbourne 4329a10ae7 go.tools/go: separate interface construction from method set construction
We introduce a method (*Interface).Complete(), which is intended
to be called from clients after all embedded interfaces have been
fully defined. For importers, this will definitely be the case
after the import has finished, so each importer have been updated
to do so, with the exception of the gcimporter, which does not use
embedded interfaces, therefore Complete() can be called immediately
after construction.

Building the method set separately from the constructor type caused
some problems with go/importer, which copies the types.Interface
object, leading to there existing two almost-identical interface
types referenced from interface method receivers, only one of which
has been completed. To avoid this situation, the importer has been
modified to construct the interface object only once.

Fixes golang/go#8177.

LGTM=gri
R=gri, dave, gordon.klaus, adonovan
CC=golang-codereviews
https://golang.org/cl/105060044
2014-07-09 20:00:49 -07:00
..
callgraph go/callgraph: fix asymptote trap in DeleteSyntheticNodes. 2014-05-08 14:03:06 -04:00
exact go.tools/go/types, exact: fix build for 1.2 2014-06-12 12:46:21 -07:00
gccgoimporter go.tools/go: separate interface construction from method set construction 2014-07-09 20:00:49 -07:00
gcimporter go.tools/go: separate interface construction from method set construction 2014-07-09 20:00:49 -07:00
importer go.tools/go: separate interface construction from method set construction 2014-07-09 20:00:49 -07:00
loader undo CL 107160049 / 9abbb23a14f6 2014-07-07 14:02:32 -07:00
pointer go.tools/go: separate interface construction from method set construction 2014-07-09 20:00:49 -07:00
ssa go.tools/go/types: correctly type the copy([]byte, string) builtin 2014-06-26 16:50:12 -07:00
types go.tools/go: separate interface construction from method set construction 2014-07-09 20:00:49 -07:00
vcs go.tools: fix various minor issues found by go vet 2014-05-19 08:47:28 -07:00