]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: consistently use typekind when reporting invalid operation
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Tue, 22 Sep 2020 05:43:16 +0000 (12:43 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Tue, 22 Sep 2020 07:12:52 +0000 (07:12 +0000)
While at it, make "typekind" awares of "types.Ideal*" types.

Passes toolstash-check.

Change-Id: I092fa8c57ab6b8d9ba0f25d8e1ea44fba48675e5
Reviewed-on: https://go-review.googlesource.com/c/go/+/256438
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>

src/cmd/compile/internal/gc/typecheck.go

index 2c445567deeb7ab8f934660d96f4094be5465414..8e87fc9df0853d5ffbeb77ed5e787023ccfe2982 100644 (file)
@@ -151,8 +151,8 @@ var _typekind = []string{
 }
 
 func typekind(t *types.Type) string {
-       if t.IsSlice() {
-               return "slice"
+       if t.IsUntyped() {
+               return fmt.Sprintf("%v", t)
        }
        et := t.Etype
        if int(et) < len(_typekind) {
@@ -736,7 +736,7 @@ func typecheck1(n *Node, top int) (res *Node) {
                        t = mixUntyped(l.Type, r.Type)
                }
                if dt := defaultType(t); !okfor[op][dt.Etype] {
-                       yyerror("invalid operation: %v (operator %v not defined on %v)", n, op, t)
+                       yyerror("invalid operation: %v (operator %v not defined on %s)", n, op, typekind(t))
                        n.Type = nil
                        return n
                }