mirror of
https://github.com/golang/go
synced 2024-11-21 23:54:40 -07:00
multiple return in := bug
R=ken OCL=32253 CL=32253
This commit is contained in:
parent
059bbdd340
commit
a587d9a73f
@ -1112,6 +1112,15 @@ Tpretty(Fmt *fp, Type *t)
|
||||
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);
|
||||
|
@ -3673,6 +3673,10 @@ old2new(Node *n, Type *t, NodeList **init)
|
||||
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;
|
||||
|
14
test/fixedbugs/bug175.go
Normal file
14
test/fixedbugs/bug175.go
Normal file
@ -0,0 +1,14 @@
|
||||
// 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"
|
||||
}
|
||||
|
@ -235,3 +235,9 @@ fixedbugs/bug131.go:7: illegal types for operand: AS
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user