aboutsummaryrefslogtreecommitdiff
path: root/src/plugin/plugin_test.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2019-10-08 15:45:14 -0700
committerRobert Griesemer <gri@golang.org>2019-10-08 23:32:42 +0000
commit5650a53dac73703a1bc095a277a194813519001f (patch)
treee3bdfd7078397dfce5e0d56aa1c55247033efc18 /src/plugin/plugin_test.go
parentce83f41fed32bfc7826ec0cd7756a34594f8746b (diff)
downloadgo-5650a53dac73703a1bc095a277a194813519001f.tar.xz
go/types: don't skip defined types when reporting cycles
The newly introduced "late-stage" cycle detection for types (https://golang.org/cl/196338/) "skips" named types on the RHS of a type declaration when reporting a cycle. For instance, for: type ( A B B [10]C C A ) the reported cycle is: illegal cycle in declaration of C C refers to C because the underlying type of C resolves to [10]C (note that cmd/compile does the same but simply says invalid recursive type C). This CL introduces the Named.orig field which always refers to the RHS type in a type definition (and is never changed). By using Named.orig rather than Named.underlying for the type validity check, the cycle as written in the source code is reported: illegal cycle in declaration of A A refers to B refers to C refers to A Fixes #34771. Change-Id: I41e260ceb3f9a15da87ffae6a3921bd8280e2ac4 Reviewed-on: https://go-review.googlesource.com/c/go/+/199937 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/plugin/plugin_test.go')
0 files changed, 0 insertions, 0 deletions