summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd/gc/walk.c3
-rw-r--r--test/newfn.go5
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
}