1
0
mirror of https://github.com/golang/go synced 2024-11-19 07:54:43 -07:00

cmd/compile: eliminate dead code in walkappend

The IsStruct case is meant to handle cases like append(f()) where f's
result parameters are something like ([]int, int, int). However, at
this point in the compiler we've already rewritten append(f()) into
"tmp1, tmp2, tmp3 := f(); append(tmp1, tmp2, tmp3)".

As further evidence, the t.Elem() is not a valid method call for a
struct type anyway, which would trigger the Fatalf call in Type.Elem
if this code was ever hit.

Change-Id: Ia066f93df66ee3fadc9a9a0f687be7b5263af163
Reviewed-on: https://go-review.googlesource.com/21427
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Matthew Dempsky 2016-04-01 16:43:43 -07:00
parent 683448a304
commit 75a22d0d10

View File

@ -2893,10 +2893,6 @@ func walkappend(n *Node, init *Nodes, dst *Node) *Node {
nsrc := n.List.First() nsrc := n.List.First()
// Resolve slice type of multi-valued return.
if nsrc.Type.IsStruct() {
nsrc.Type = nsrc.Type.Elem().Elem()
}
argc := n.List.Len() - 1 argc := n.List.Len() - 1
if argc < 1 { if argc < 1 {
return nsrc return nsrc