return fmtprint(fp, " }");
case TSTRUCT:
+ if(t->funarg) {
+ fmtprint(fp, "(");
+ for(t1=t->type; t1!=T; t1=t1->down) {
+ fmtprint(fp, "%T", t1);
+ if(t1->down)
+ fmtprint(fp, ", ");
+ }
+ return fmtprint(fp, ")");
+ }
fmtprint(fp, "struct {");
for(t1=t->type; t1!=T; t1=t1->down) {
fmtprint(fp, " %T", t1);
yyerror("left side of := must be a name");
return n;
}
+ if(t != T && t->funarg) {
+ yyerror("use of multi func value as single value in :=");
+ return n;
+ }
l = newname(n->sym);
dodclvar(l, t, init);
return l;
--- /dev/null
+// errchk $G $D/$F.go
+
+// 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
+
+func f() (int, bool) { return 0, true }
+
+func main() {
+ x, y := f(), 2; // ERROR "multi"
+}
+
fixedbugs/bug133.dir/bug2.go:11: undefined: bug0.T field i
fixedbugs/bug133.dir/bug2.go:11: illegal types for operand: RETURN
int
+
+=========== fixedbugs/bug175.go
+fixedbugs/bug175.go:8: use of multi func value as single value in :=
+fixedbugs/bug175.go:8: undefined: x
+fixedbugs/bug175.go:8: illegal types for operand: AS
+ (int, bool)