mirror of
https://github.com/golang/go
synced 2024-11-26 04:27:58 -07:00
cmd/compile: allow print/println(f()) where f() is multi-value
Fixes #35576 Change-Id: Ia128f412120069e9f8813e9e910e62644f950bfb Reviewed-on: https://go-review.googlesource.com/c/go/+/207118 Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
d67d044310
commit
af686da46f
@ -1805,7 +1805,7 @@ func typecheck1(n *Node, top int) (res *Node) {
|
|||||||
|
|
||||||
case OPRINT, OPRINTN:
|
case OPRINT, OPRINTN:
|
||||||
ok |= ctxStmt
|
ok |= ctxStmt
|
||||||
typecheckslice(n.List.Slice(), ctxExpr)
|
typecheckargs(n)
|
||||||
ls := n.List.Slice()
|
ls := n.List.Slice()
|
||||||
for i1, n1 := range ls {
|
for i1, n1 := range ls {
|
||||||
// Special case for print: int constant is int64, not int.
|
// Special case for print: int constant is int64, not int.
|
||||||
|
16
test/fixedbugs/issue35576.go
Normal file
16
test/fixedbugs/issue35576.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// run
|
||||||
|
|
||||||
|
// Copyright 2019 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.
|
||||||
|
|
||||||
|
// Check print/println(f()) is allowed where f() is multi-value.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
func f() (int16, float64, string) { return -42, 42.0, "x" }
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
print(f())
|
||||||
|
println(f())
|
||||||
|
}
|
1
test/fixedbugs/issue35576.out
Normal file
1
test/fixedbugs/issue35576.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
-42+4.200000e+001x-42 +4.200000e+001 x
|
Loading…
Reference in New Issue
Block a user