]> Cypherpunks repositories - gostls13.git/commit
go/types: don't over-eagerly verify embedded interfaces
authorRobert Griesemer <gri@golang.org>
Tue, 29 May 2018 22:13:32 +0000 (15:13 -0700)
committerRobert Griesemer <gri@golang.org>
Wed, 30 May 2018 15:25:21 +0000 (15:25 +0000)
commitfd4392ba6f8c593fdfdf19366f3896b668db2824
tree8d45209a7a0a50ba0229c360808aae7ec4431515
parentf5cf72d43ed1441d2e80654be5bde4b11f4cbcd1
go/types: don't over-eagerly verify embedded interfaces

In https://go-review.googlesource.com/c/go/+/114317 (fix for #25301)
the constructor types.NewInterface was replaced with NewInterface2.
The new constructor aggressively verified that embedded interfaces
had an underlying type of interface type; the old code didn't do
any verification. During importing, defined types may be not yet
fully set up, and testing their underlying types will fail in those
cases.

This change only verifies embedded types that are not defined types
and thus restores behavior for defined types to how it was before
the fix for #25301.

Fixes #25596.
Fixes #25615.

Change-Id: Ifd694413656ec0b780fe4f37acaa9e6ba6077271
Reviewed-on: https://go-review.googlesource.com/115155
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
src/go/internal/gcimporter/gcimporter_test.go
src/go/internal/gcimporter/testdata/issue25596.go [new file with mode: 0644]
src/go/types/type.go