go/test/fixedbugs
Cuong Manh Le 7b314d27ce cmd/compile: fix bad order of evaluation for multi-value f()(g()) calls
The compiler use to compile f()(g()) as:

	t1, t2 := g()
	f()(t1, t2)

That violates the Go spec, since when "..., all function calls, ... are
evaluated in lexical left-to-right order"

This PR fixes the bug by compiling f()(g()) as:

	t0 := f()
	t1, t2 := g()
	t0(t1, t2)

to make "f()" to be evaluated before "g()".

Fixes #50672

Change-Id: I6a766f3dfc7347d10f8fa3a151f6a5ea79bcf818
Reviewed-on: https://go-review.googlesource.com/c/go/+/392834
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
2022-05-11 08:12:15 +00:00
..
2021-08-13 20:49:48 +00:00
2022-03-09 21:31:58 +00:00
2022-03-09 21:31:58 +00:00
2021-02-22 22:53:51 +00:00
2021-04-21 20:24:34 +00:00
2021-04-21 20:24:34 +00:00
2022-03-09 21:31:58 +00:00
2022-03-09 21:31:58 +00:00
2022-03-09 21:31:58 +00:00
2022-03-09 21:31:58 +00:00
2022-03-09 21:31:58 +00:00
2019-04-24 19:55:13 +00:00
2019-07-18 11:34:23 +00:00
2019-07-18 17:24:59 +00:00
2021-02-22 20:00:00 +00:00
2020-10-30 19:30:44 +00:00
2020-11-21 16:46:05 +00:00
2021-05-22 00:51:17 +00:00