go/src/cmd/compile/internal
Matthew Dempsky 07de3465be cmd/compile/internal/gc: handle recursive interfaces better
Previously, we handled recursive interfaces by deferring typechecking
of interface methods, while eagerly expanding interface embeddings.

This CL switches to eagerly evaluating interface methods, and
deferring expanding interface embeddings to dowidth. This allows us to
detect recursive interface embeddings with the same mechanism used for
detecting recursive struct embeddings.

Updates #16369.

Change-Id: If4c0320058047f8a2d9b52b9a79de47eb9887f95
Reviewed-on: https://go-review.googlesource.com/38391
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
2017-03-21 01:56:25 +00:00
..
amd64 cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00
arm cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00
arm64 cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00
gc cmd/compile/internal/gc: handle recursive interfaces better 2017-03-21 01:56:25 +00:00
mips cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00
mips64 cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00
ppc64 cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00
s390x cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00
ssa cmd/compile: port liveness analysis to SSA 2017-03-20 22:58:50 +00:00
syntax cmd/compile: don't permit declarations in post statement of for loop 2017-03-20 20:02:34 +00:00
test
x86 cmd/compile: remove ProgInfo tables 2017-03-20 23:29:51 +00:00