aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
authorDan Scales <danscales@google.com>2021-08-02 11:07:45 -0700
committerDan Scales <danscales@google.com>2021-08-02 21:26:07 +0000
commite56234a30544c043b45601ce01601e3a03e00d63 (patch)
tree85615813898f63a28e1b8446454ab06d0f8a045e /src/cmd/compile/internal/noder
parentc3c19731a9dd128b5b81c9062416804a5a4893d2 (diff)
downloadgo-e56234a30544c043b45601ce01601e3a03e00d63.tar.gz
go-e56234a30544c043b45601ce01601e3a03e00d63.zip
[dev.typeparams] cmd/compile: simple shape cleanups
- Changed some early returns to asserts (instantiateMethods and Shapify should never take a shape arg) - Added suggested change (by Ingo) to use copy() in getInstantiation() - Clarified that shape types never have methods in Shapify(), removed some TODO comments. Change-Id: Ia2164ffe670a777f7797bbb45c7ef5e6e9e15357 Reviewed-on: https://go-review.googlesource.com/c/go/+/338971 Run-TryBot: Dan Scales <danscales@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Trust: Dan Scales <danscales@google.com>
Diffstat (limited to 'src/cmd/compile/internal/noder')
-rw-r--r--src/cmd/compile/internal/noder/stencil.go9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/cmd/compile/internal/noder/stencil.go b/src/cmd/compile/internal/noder/stencil.go
index 037f309a82..c006c4af44 100644
--- a/src/cmd/compile/internal/noder/stencil.go
+++ b/src/cmd/compile/internal/noder/stencil.go
@@ -474,10 +474,7 @@ func (g *irgen) buildClosure(outer *ir.Func, x ir.Node) ir.Node {
func (g *irgen) instantiateMethods() {
for i := 0; i < len(g.instTypeList); i++ {
typ := g.instTypeList[i]
- if typ.HasShape() {
- // Shape types should not have any methods.
- continue
- }
+ assert(!typ.HasShape())
// Mark runtime type as needed, since this ensures that the
// compiler puts out the needed DWARF symbols, when this
// instantiated type has a different package from the local
@@ -782,9 +779,7 @@ func (g *irgen) getInstantiation(nameNode *ir.Name, shapes []*types.Type, isMeth
if !t.HasShape() {
if s1 == nil {
s1 = make([]*types.Type, len(shapes))
- for j := 0; j < i; j++ {
- s1[j] = shapes[j]
- }
+ copy(s1[0:i], shapes[0:i])
}
s1[i] = typecheck.Shapify(t)
} else if s1 != nil {