Also mention that ignoring second blank identifier of range is required by the spec in the code.
Fixes #4173.
R=daniel.morsing, remyoudompheng, r
CC=golang-dev
https://golang.org/cl/
6594043
v2 = N;
if(n->list->next)
v2 = n->list->next->n;
-
+
+ // this is not only a optimization but also a requirement in the spec.
+ // "if the second iteration variable is the blank identifier, the range
+ // clause is equivalent to the same clause with only the first variable
+ // present."
if(isblank(v2)) {
n->list = list1(v1);
v2 = N;
--- /dev/null
+// run
+
+// Copyright 2012 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.
+
+// Issue 4173
+
+package main
+
+func main() {
+ var arr *[10]int
+ s := 0
+ for i, _ := range arr {
+ // used to panic trying to access arr[i]
+ s += i
+ }
+ if s != 45 {
+ println("BUG")
+ }
+}