Fix error message for recursive types during initialization cycle.

This commit is contained in:
Max Neverov 2024-09-21 19:04:21 +02:00
parent d4d873e309
commit df5e61d4bc
3 changed files with 7 additions and 7 deletions

View File

@ -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()
}

View File

@ -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()
}

View File

@ -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
)