]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: avoid assignment conversion in append(a, b...)
authorKeith Randall <khr@golang.org>
Mon, 18 Jul 2022 18:47:19 +0000 (11:47 -0700)
committerKeith Randall <khr@google.com>
Mon, 8 Aug 2022 16:58:57 +0000 (16:58 +0000)
commit2493072db68a8f8b545bb2a6faebac0da0f01336
treeaa3634bcab3894c6382b3c68c7340a43370e27ba
parentc3833a55433f4b2981253f64444fe5c3d1bc910a
cmd/compile: avoid assignment conversion in append(a, b...)

There's no need for a and b to match types. The typechecker already
ensured that a and b are both slices with the same base type, or
a and b are (possibly named) []byte and string.

The optimization to treat append(b, make([], ...)) as a zeroing
slice extension doesn't fire when there's a OCONVNOP wrapping the make.
Fixes #53888

Change-Id: Ied871ed0bbb8e4a4b35d280c71acbab8103691bc
Reviewed-on: https://go-review.googlesource.com/c/go/+/418475
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
src/cmd/compile/internal/noder/transform.go
src/cmd/compile/internal/test/issue53888_test.go [new file with mode: 0644]
src/cmd/compile/internal/typecheck/func.go
src/runtime/slice.go
test/fixedbugs/issue29190.go