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:
parent
683448a304
commit
75a22d0d10
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user