cmd/compile: use underlying OCOMPLIT's position for OPTRLIT

Currently, when we create an OPTRLIT node, it defaults to the
OCOMPLIT's final element's position. But it improves error messages to
use the OCOMPLIT's own position instead.

Change-Id: Ibb031f543c7248d88d99fd0737685e01d86e2500
Reviewed-on: https://go-review.googlesource.com/c/go/+/197119
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Matthew Dempsky 2019-09-24 23:56:50 -07:00
parent 3e428363c4
commit efb9739203
2 changed files with 3 additions and 3 deletions

View file

@ -3026,7 +3026,7 @@ func typecheckcomplit(n *Node) (res *Node) {
n.Orig = norig
if n.Type.IsPtr() {
n = nod(OPTRLIT, n, nil)
n = nodl(n.Pos, OPTRLIT, n, nil)
n.SetTypecheck(1)
n.Type = n.Left.Type
n.Left.Type = t

View file

@ -220,8 +220,8 @@ type T2 struct {
func dotTypeEscape() *T2 { // #11931
var x interface{}
x = &T1{p: new(int)} // ERROR "new\(int\) escapes to heap" "&T1 literal does not escape"
return &T2{
T1: *(x.(*T1)), // ERROR "&T2 literal escapes to heap"
return &T2{ // ERROR "&T2 literal escapes to heap"
T1: *(x.(*T1)),
}
}