Fixes #18231.
Change-Id: If1615da4db0e6f0516369a1dc37340d80c78f237
Reviewed-on: https://go-review.googlesource.com/37018
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
        }()
 
        if n.Right == nil {
-               if n.List.Len() != 0 {
-                       setlineno(n.List.First())
-               }
-               yyerror("missing type in composite literal")
+               yyerrorl(n.Pos, "missing type in composite literal")
                n.Type = nil
                return n
        }
 
--- /dev/null
+// 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",
+       },
+}