JVM_IR pass reified type parameters in indy SAM conversion proxy
This commit is contained in:
committed by
teamcityserver
parent
40fe67880b
commit
005d3b1f6f
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: genericFunRef.kt
|
||||
|
||||
fun <T> plusK(x: T) = x.toString() + "K"
|
||||
|
||||
fun box() = J(::plusK).apply("O")
|
||||
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
public String apply(String x);
|
||||
}
|
||||
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
// WITH_RUNTIME
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: highOrderFunRef.kt
|
||||
|
||||
fun applyO(fn: (String) -> String) = fn("O")
|
||||
|
||||
fun box() = J(::applyO).invoke { it + "K" }
|
||||
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
String invoke(kotlin.jvm.functions.Function1<String, String> fn);
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: inlineFunRef.kt
|
||||
|
||||
inline fun plusK(x: String) = x.toString() + "K"
|
||||
|
||||
fun box() = J(::plusK).apply("O")
|
||||
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
public String apply(String x);
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
// WITH_RUNTIME
|
||||
// FULL_JDK
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: inlineFunWithReifiedTypeParameterRef.kt
|
||||
|
||||
inline fun <reified T> oPlus(x: T) = "O" + T::class.java.simpleName
|
||||
|
||||
class K
|
||||
|
||||
fun box() = J(::oPlus).apply(K())
|
||||
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
public String apply(K x);
|
||||
}
|
||||
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
// WITH_RUNTIME
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: inlineHighOrderFunRef.kt
|
||||
|
||||
inline fun applyO(fn: (String) -> String) = fn("O")
|
||||
|
||||
fun box() = J(::applyO).invoke { it + "K" }
|
||||
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
String invoke(kotlin.jvm.functions.Function1<String, String> fn);
|
||||
}
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: arrayOf.kt
|
||||
fun box() =
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: enumValues.kt
|
||||
enum class ABC(val x: String = "") {
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: enumValues.kt
|
||||
enum class ABC(val x: String = "") {
|
||||
|
||||
Reference in New Issue
Block a user