Support bound callable reference inlining in IR
This commit is contained in:
-14
@@ -1,14 +0,0 @@
|
||||
class X {
|
||||
val result: String
|
||||
inline get() = "OK"
|
||||
|
||||
fun x(): String {
|
||||
return go(::result)
|
||||
}
|
||||
}
|
||||
|
||||
inline fun go(f: () -> String): String = f()
|
||||
|
||||
fun box(): String {
|
||||
return X().x()
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
inline fun foo(x: () -> String) = x()
|
||||
|
||||
fun String.id() = this
|
||||
|
||||
fun box() = foo("OK"::id)
|
||||
@@ -1,8 +0,0 @@
|
||||
inline fun go(f: () -> String) = f()
|
||||
|
||||
fun String.id(): String = this
|
||||
|
||||
fun box(): String {
|
||||
val x = "OK"
|
||||
return go(x::id)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: JClass.java
|
||||
public class JClass {
|
||||
public String field;
|
||||
|
||||
public JClass(String field){
|
||||
this.field = field;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
inline fun call(s: () -> String): String {
|
||||
return s()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return call(JClass("OK")::field)
|
||||
}
|
||||
Reference in New Issue
Block a user