JVM_IR KT-45998 protected companion object member accessors with indy
This commit is contained in:
committed by
TeamCityServer
parent
9a4a39e680
commit
7f4da93cc3
+10
-2
@@ -8,6 +8,7 @@
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
// 1 c2/C2\.access\$test\$s[0-9]+\(\)Ljava/lang/String\;
|
||||
|
||||
// FILE: test.kt
|
||||
import c2.*
|
||||
@@ -29,8 +30,15 @@ open class C1 {
|
||||
package c2
|
||||
|
||||
import c1.*
|
||||
import java.util.function.Supplier
|
||||
import j.*
|
||||
|
||||
class C2 : C1() {
|
||||
fun supplier() = Supplier<String>(::test)
|
||||
fun supplier() = J(::test)
|
||||
}
|
||||
|
||||
// FILE: j/J.java
|
||||
package j;
|
||||
|
||||
public interface J {
|
||||
public String get();
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// WITH_RUNTIME
|
||||
// FULL_JDK
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: test.kt
|
||||
import c2.*
|
||||
|
||||
fun box(): String =
|
||||
C2().supplier().get()
|
||||
|
||||
// FILE: C1.kt
|
||||
package c1
|
||||
|
||||
open class C1 {
|
||||
protected fun test(): String = "OK"
|
||||
}
|
||||
|
||||
// FILE: C2.kt
|
||||
package c2
|
||||
|
||||
import c1.*
|
||||
import j.*
|
||||
|
||||
class C2 : C1() {
|
||||
fun supplier() = J(this::test)
|
||||
}
|
||||
|
||||
// FILE: j/J.java
|
||||
package j;
|
||||
|
||||
public interface J {
|
||||
public String get();
|
||||
}
|
||||
Reference in New Issue
Block a user