diff options
-rw-r--r-- | src/cmd/gc/walk.c | 3 | ||||
-rw-r--r-- | test/newfn.go | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 6c7c02838..870d30a98 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -2078,13 +2078,14 @@ Node* newcompat(Node *n) { Node *r, *on; - Type *t, *t0; + Type *t; t = n->type; if(t == T) goto bad; switch(t->etype) { + case TFUNC: case TSTRING: case TMAP: case TCHAN: diff --git a/test/newfn.go b/test/newfn.go index fbbf942ce..63df683ce 100644 --- a/test/newfn.go +++ b/test/newfn.go @@ -10,5 +10,8 @@ func main() { f := new(()); // ERROR "new" g := new((x int, f float) string); // ERROR "new" - h := new(()); // ok + h := new(*()); // ok + i := new(string); // ok + j := new(map[int]int); // ok + k := new(chan int); // ok } |