Add additional tests for bound receivers in callable references
This commit is contained in:
committed by
max-kammerer
parent
d89d68e3df
commit
62a1ea643a
+14
@@ -0,0 +1,14 @@
|
||||
var x = 0
|
||||
|
||||
class A {
|
||||
fun f() = if (x == 1) "OK" else "Fail $x"
|
||||
}
|
||||
|
||||
fun callTwice(f: () -> String): String {
|
||||
f()
|
||||
return f()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return callTwice(({ x++; A() }())::f)
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// WITH_REFLECT
|
||||
import kotlin.reflect.KProperty0
|
||||
|
||||
var x = 0
|
||||
|
||||
class A {
|
||||
val p: String
|
||||
get() = if (x == 1) "OK" else "Fail $x"
|
||||
}
|
||||
|
||||
fun callTwice(p: KProperty0<String>): String {
|
||||
p.get()
|
||||
return p.get()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return callTwice(({ x++; A() }())::p)
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: JavaRunner.java
|
||||
public class JavaRunner {
|
||||
public static void runTwice(Runnable runnable) {
|
||||
runnable.run();
|
||||
runnable.run();
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
class A() {
|
||||
fun f() {}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var x = 0
|
||||
JavaRunner.runTwice({ x++; A() }()::f)
|
||||
if (x != 1) return "Fail"
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user