Also add relevant test.
Fixes #13343.
Change-Id: Ib1e65af1d643d501de89adee3618eddbf6c69c9e
Reviewed-on: https://go-review.googlesource.com/18159
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
}
case OAS2FUNC, OAS2MAPR, OAS2DOTTYPE, OAS2RECV:
- if defn.Initorder != InitNotStarted {
+ if defn.Initorder == InitDone {
break
}
- defn.Initorder = InitDone
+ defn.Initorder = InitPending
for l := defn.Rlist; l != nil; l = l.Next {
init1(l.N, out)
}
Dump("nonstatic", defn)
}
*out = list(*out, defn)
+ defn.Initorder = InitDone
}
}
--- /dev/null
+// errorcheck
+
+// Copyright 2015 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.
+
+package main
+
+var (
+ a, b = f() // ERROR "initialization loop|depends upon itself"
+ c = b
+)
+
+func f() (int, int) {
+ return c, c
+}
+
+func main() {}