Fix StackOverflowError while mapping recursive intersection-type

#KT-10972 Fixed
This commit is contained in:
Denis Zharkov
2016-03-18 11:28:45 +03:00
parent 67b59fa72f
commit e54b25a35a
5 changed files with 58 additions and 24 deletions
@@ -0,0 +1,16 @@
// WITH_RUNTIME
interface In<in E>
open class A : In<A>
open class B : In<B>
inline fun <reified T : Any> select(x: T, y: T) = T::class.java.simpleName
// This test checks mostly that no StackOverflow happens while mapping type argument of select-call (In<A & B>)
// See KT-10972
fun foo(): String = select(A(), B())
fun box(): String {
if (foo() != "In") return "fail"
return "OK"
}