1
0
mirror of https://github.com/golang/go synced 2024-11-22 01:34:41 -07:00

gc: var x, ok = m[y]

Fixes #384.

R=ken2
https://golang.org/cl/179061
This commit is contained in:
Russ Cox 2009-12-15 14:26:33 -08:00
parent 84e7cb0611
commit 0282cc5e74
2 changed files with 40 additions and 0 deletions

View File

@ -94,6 +94,12 @@ init1(Node *n, NodeList **out)
init1(l->n, out); init1(l->n, out);
*out = list(*out, n->defn); *out = list(*out, n->defn);
break; break;
case OAS2MAPR:
for(l=n->defn->rlist; l; l=l->next)
init1(l->n, out);
*out = list(*out, n->defn);
break;
} }
} }
l = initlist; l = initlist;

34
test/fixedbugs/bug227.go Normal file
View File

@ -0,0 +1,34 @@
// $G $D/$F.go && $L $F.$A && ./$A.out
// Copyright 2009 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.
package main
var (
nf int
x, y, z = f(), f(), f()
m = map[string]string{"a":"A"}
a, aok = m["a"]
b, bok = m["b"]
)
func look(s string) (string, bool) {
x, ok := m[s]
return x, ok
}
func f() int {
nf++
return nf
}
func main() {
if nf != 3 || x != 1 || y != 2 || z != 3 {
panic("nf=", nf, " x=", x, " y=", y)
}
if a != "A" || aok != true || b != "" || bok != false {
panic("a=", a, " aok=", aok, " b=", b, " bok=", bok)
}
}