Closed
Description
Compiler version
3.3.0-RC3
Minimized code
type Y = { type T = String; def u(): T }
trait Test {
val y1: Y
val y2 = y1.u()
}
Output
Recursion limit exceeded.
Maybe there is an illegal cyclic reference?
If that's not the case, you could also try to increase the stacksize using the -Xss JVM option.
For the unprocessed stack trace, compile with -Yno-decode-stacktraces.
A recurring operation is (inner to outer):
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
...
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member Object#T
find-member y1.u
Expectation
I'm would expect this one to compile.
It is pretty strange. It triggers when:
- The refinement has a concrete type member.
- There is a method that has a parameter list (even if empty) and the return type is the type member
This is similar to #17380 although it appears to be quite different but perhaps it is the same underlying bug. This one throws at the call site.