Skip to content

Commit

Permalink
gc: never include ( ) on singleton func return type
Browse files Browse the repository at this point in the history
Fixes #749.

R=ken2
CC=golang-dev
https://golang.org/cl/963043
  • Loading branch information
rsc committed Apr 29, 2010
1 parent 10eb76b commit 77817e0
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
12 changes: 4 additions & 8 deletions src/cmd/gc/subr.c
Expand Up @@ -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, " (");
Expand Down
18 changes: 18 additions & 0 deletions test/fixedbugs/bug269.go
@@ -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))
}

0 comments on commit 77817e0

Please sign in to comment.