| // TARGET_BACKEND: JVM | |
| // WITH_STDLIB | |
| // FILE: Sample.java | |
| public class Sample { | |
| public static int max(int x, int y) { | |
| if (x > y) { | |
| return x; | |
| } else { | |
| return y; | |
| } | |
| } | |
| } | |
| // FILE: main.kt | |
| import kotlin.reflect.KFunction2 | |
| abstract class Checker { | |
| fun check(): String { | |
| return run( | |
| Sample::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 "OK" | |
| } | |
| } ).check() | |
| return result | |
| } |