mirror of https://github.com/golang/go.git
Fix error message for recursive types during initialization cycle.
This commit is contained in:
parent
d4d873e309
commit
df5e61d4bc
|
|
@ -165,11 +165,11 @@ func (check *Checker) reportCycle(cycle []Object) {
|
|||
err.addf(obj, "initialization cycle for %s", obj.Name())
|
||||
// subtle loop: print cycle[i] for i = 0, n-1, n-2, ... 1 for len(cycle) = n
|
||||
for i := len(cycle) - 1; i >= 0; i-- {
|
||||
err.addf(obj, "%s refers to", obj.Name())
|
||||
currObj := obj
|
||||
currName := obj.Name()
|
||||
obj = cycle[i]
|
||||
err.addf(currObj, "%s refers to %s", currName, obj.Name())
|
||||
}
|
||||
// print cycle[0] again to close the cycle
|
||||
err.addf(obj, "%s", obj.Name())
|
||||
err.report()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -168,11 +168,11 @@ func (check *Checker) reportCycle(cycle []Object) {
|
|||
err.addf(obj, "initialization cycle for %s", obj.Name())
|
||||
// subtle loop: print cycle[i] for i = 0, n-1, n-2, ... 1 for len(cycle) = n
|
||||
for i := len(cycle) - 1; i >= 0; i-- {
|
||||
err.addf(obj, "%s refers to", obj.Name())
|
||||
currObj := obj
|
||||
currName := obj.Name()
|
||||
obj = cycle[i]
|
||||
err.addf(currObj, "%s refers to %s", currName, obj.Name())
|
||||
}
|
||||
// print cycle[0] again to close the cycle
|
||||
err.addf(obj, "%s", obj.Name())
|
||||
err.report()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ package main
|
|||
|
||||
var (
|
||||
x int = a
|
||||
a int = b // ERROR "a refers to\n.*b refers to\n.*c refers to\n.*a|initialization loop"
|
||||
a int = b // ERROR "a refers to b\n.*b refers to c\n.*c refers to a|initialization loop"
|
||||
b int = c
|
||||
c int = a
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue