]> Cypherpunks repositories - gostls13.git/commitdiff
gc: never include ( ) on singleton func return type
authorRuss Cox <rsc@golang.org>
Thu, 29 Apr 2010 23:07:14 +0000 (16:07 -0700)
committerRuss Cox <rsc@golang.org>
Thu, 29 Apr 2010 23:07:14 +0000 (16:07 -0700)
Fixes #749.

R=ken2
CC=golang-dev
https://golang.org/cl/963043

src/cmd/gc/subr.c
test/fixedbugs/bug269.go [new file with mode: 0644]

index 34b54984201561f2b0a47f011cd7894b59f3b6a6..b0192adf331c7fa48fa9e6ab8a0120975395a3ff 100644 (file)
@@ -1227,14 +1227,10 @@ Tpretty(Fmt *fp, Type *t)
                                fmtprint(fp, " ?unknown-type?");
                                break;
                        }
-                       if(t1->etype != TFIELD) {
-                               fmtprint(fp, " %T", t1);
-                               break;
-                       }
-                       if(t1->sym == S) {
-                               fmtprint(fp, " %T", t1->type);
-                               break;
-                       }
+                       if(t1->etype == TFIELD)
+                               t1 = t1->type;
+                       fmtprint(fp, " %T", t1);
+                       break;
                default:
                        t1 = getoutargx(t)->type;
                        fmtprint(fp, " (");
diff --git a/test/fixedbugs/bug269.go b/test/fixedbugs/bug269.go
new file mode 100644 (file)
index 0000000..4cc0408
--- /dev/null
@@ -0,0 +1,18 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2010 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.
+
+// http://code.google.com/p/go/issues/detail?id=749
+
+package main
+
+func f() (ok bool) { return false }
+
+func main() {
+       var i interface{}
+       i = f
+       _ = i.(func()bool)
+       _ = i.(func()(bool))
+}