]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix position for "missing type in composite literal" error
authorRobert Griesemer <gri@golang.org>
Wed, 15 Feb 2017 01:13:13 +0000 (17:13 -0800)
committerRobert Griesemer <gri@golang.org>
Wed, 15 Feb 2017 01:33:44 +0000 (01:33 +0000)
Fixes #18231.

Change-Id: If1615da4db0e6f0516369a1dc37340d80c78f237
Reviewed-on: https://go-review.googlesource.com/37018
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/typecheck.go
test/fixedbugs/issue18231.go [new file with mode: 0644]

index ec6f1832fe08aa6f9067feec1d34fe3fab5aefa5..a6acb6a776e6cd225187385b05bc0d18f122c2df 100644 (file)
@@ -2882,10 +2882,7 @@ func typecheckcomplit(n *Node) *Node {
        }()
 
        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
        }
diff --git a/test/fixedbugs/issue18231.go b/test/fixedbugs/issue18231.go
new file mode 100644 (file)
index 0000000..adfd227
--- /dev/null
@@ -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",
+       },
+}