aboutsummaryrefslogtreecommitdiff
path: root/test/range.go
diff options
context:
space:
mode:
authorMartin Möhrmann <moehrmann@google.com>2016-12-19 00:06:46 +0100
committerMartin Möhrmann <moehrmann@google.com>2017-02-28 08:23:52 +0000
commita8f07310e3a08910dde2b7e9550848ec400753ad (patch)
treeda5388f9b22609f6a9df1df1fc2b7fdf57a49960 /test/range.go
parent55310403ddf051634fa398b4c9e6013d530753f5 (diff)
downloadgo-a8f07310e3a08910dde2b7e9550848ec400753ad.tar.gz
go-a8f07310e3a08910dde2b7e9550848ec400753ad.zip
cmd/compile: fix assignment order in string range loop
Fixes #18376. Change-Id: I4fe24f479311cd4cd1bdad9a966b681e50e3d500 Reviewed-on: https://go-review.googlesource.com/35955 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'test/range.go')
-rw-r--r--test/range.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/range.go b/test/range.go
index bae7a1c3c9..afdac57fa3 100644
--- a/test/range.go
+++ b/test/range.go
@@ -277,6 +277,26 @@ func teststring() {
println("wrong sum ranging over makestring", s)
panic("fail")
}
+
+ x := []rune{'a', 'b'}
+ i := 1
+ for i, x[i] = range "c" {
+ break
+ }
+ if i != 0 || x[0] != 'a' || x[1] != 'c' {
+ println("wrong parallel assignment", i, x[0], x[1])
+ panic("fail")
+ }
+
+ y := []int{1, 2, 3}
+ r := rune(1)
+ for y[r], r = range "\x02" {
+ break
+ }
+ if r != 2 || y[0] != 1 || y[1] != 0 || y[2] != 3 {
+ println("wrong parallel assignment", r, y[0], y[1], y[2])
+ panic("fail")
+ }
}
func teststring1() {