Files
kotlin-fork/compiler/testData/codegen/box/callableReference/callableReferenceOfObjectMethod.kt
T
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00

58 lines
1.2 KiB
Kotlin
Vendored

// WITH_STDLIB
// FILE: main.kt
import kotlin.reflect.KFunction2
class Sample {
object A {
fun max(x: Int, y: Int): Int {
return if (x > y) {
x
} else {
y
}
}
}
}
object A2 {
fun max(x: Int, y: Int): Int {
return if (x > y) {
x
} else {
y
}
}
}
abstract class Checker {
fun check(): String {
return run(
Sample.A::max,
{ x, y -> x > y }
)
}
fun check2(): String {
return run(
A2::max,
{ x, y -> x > y }
)
}
abstract fun <T1, T2, R> run(method: KFunction2<T1, T2, R>, fn: (T1, T2) -> Boolean): String
}
fun box(): String {
var result = ( object : Checker() {
override fun <T1, T2, R> run(method: KFunction2<T1, T2, R>, fn: (T1, T2) -> Boolean): String {
return "O"
}
} ).check()
result += ( object : Checker() {
override fun <T1, T2, R> run(method: KFunction2<T1, T2, R>, fn: (T1, T2) -> Boolean): String {
return "K"
}
} ).check2()
return result
}