Commit 75a22d0d authored by Matthew Dempsky's avatar Matthew Dempsky

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: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 683448a3
...@@ -2893,10 +2893,6 @@ func walkappend(n *Node, init *Nodes, dst *Node) *Node { ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment