cmd/compile: fix position for "missing type in composite literal" error

Fixes #18231.

Change-Id: If1615da4db0e6f0516369a1dc37340d80c78f237
Reviewed-on: https://go-review.googlesource.com/37018
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
Robert Griesemer 2017-02-14 17:13:13 -08:00
parent 5267ac2732
commit 2770c507a5
2 changed files with 21 additions and 4 deletions

View file

@ -2882,10 +2882,7 @@ func typecheckcomplit(n *Node) *Node {
}() }()
if n.Right == nil { if n.Right == nil {
if n.List.Len() != 0 { yyerrorl(n.Pos, "missing type in composite literal")
setlineno(n.List.First())
}
yyerror("missing type in composite literal")
n.Type = nil n.Type = nil
return n return n
} }

View file

@ -0,0 +1,20 @@
// errorcheck
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Test that error message for composite literals with
// missing type is at the right place.
package p
type T struct {
f map[string]string
}
var _ = T{
f: { // ERROR "missing type in composite literal"
"a": "b",
},
}