diff options
author | Martin Möhrmann <moehrmann@google.com> | 2016-12-19 00:06:46 +0100 |
---|---|---|
committer | Martin Möhrmann <moehrmann@google.com> | 2017-02-28 08:23:52 +0000 |
commit | a8f07310e3a08910dde2b7e9550848ec400753ad (patch) | |
tree | da5388f9b22609f6a9df1df1fc2b7fdf57a49960 /test/range.go | |
parent | 55310403ddf051634fa398b4c9e6013d530753f5 (diff) | |
download | go-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.go | 20 |
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() { |