Files
kotlin/compiler/testData/diagnostics/tests/RecursiveResolve.kt
Alexander Udalov 239502368a Update test data for tower resolution algorithm
- locals win
- unary calls to plus/minus are not supported in favor of unaryPlus/unaryMinus
- unqualified nested classes are temporarily reported as unresolved
- function without receiver win against extension function
- explicit import win against star import
2015-12-11 17:01:02 +03:00

75 lines
2.3 KiB
Kotlin
Vendored

class Test(foo: Any?, bar: Any?) {
val foo = foo ?: this
private val bar = bar ?: this
private val bas = bas()
val bas2 = bas2()
private fun bas(): Int = null!!
private fun bas2(): Int = null!!
fun bar() = bar(1)
fun bar(<!UNUSED_PARAMETER!>i<!>: Int) = 2
private fun bar2() = bar2(1)
private fun bar2(<!UNUSED_PARAMETER!>i<!>: Int) = 2
}
// KT-6413 Typechecker recursive problem when class have non-invariant generic parameters
class Test2<A, B, C>(foo: Any?, bar: Any?) {
val foo = foo ?: this
private val bar = bar ?: this
private val bas = bas()
val bas2 = bas2()
private fun bas(): Int = null!!
private fun bas2(): Int = null!!
fun bar() = bar(1)
fun bar(<!UNUSED_PARAMETER!>i<!>: Int) = 2
private fun bar2() = bar2(1)
private fun bar2(<!UNUSED_PARAMETER!>i<!>: Int) = 2
}
class Test3<in A, B, C>(foo: Any?, bar: Any?) {
val foo = foo ?: this
private val bar = bar ?: this
private val bas = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bas<!>()<!>
val bas2 = bas2()
private fun bas(): Int = null!!
private fun bas2(): Int = null!!
fun bar() = bar(1)
fun bar(<!UNUSED_PARAMETER!>i<!>: Int) = 2
private fun bar2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>(1)<!>
private fun bar2(<!UNUSED_PARAMETER!>i<!>: Int) = 2
}
class Test4<A, out B, C>(foo: Any?, bar: Any?) {
val foo = foo ?: this
private val bar = bar ?: this
private val bas = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bas<!>()<!>
val bas2 = bas2()
private fun bas(): Int = null!!
private fun bas2(): Int = null!!
fun bar() = bar(1)
fun bar(<!UNUSED_PARAMETER!>i<!>: Int) = 2
private fun bar2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>(1)<!>
private fun bar2(<!UNUSED_PARAMETER!>i<!>: Int) = 2
}
class Test5<A, out B, C>(foo: Any?, bar: Any?) {
val foo = foo ?: this
private val bar = bar ?: this
private val bas: Int = bas()
val bas2 = bas2()
private fun bas(): Int = null!!
private fun bas2(): Int = null!!
fun bar() = bar(1)
fun bar(<!UNUSED_PARAMETER!>i<!>: Int) = 2
private fun bar2(): Int = bar2(1)
private fun bar2(<!UNUSED_PARAMETER!>i<!>: Int) = 2
}