JVM_IR KT-46840 don't generate special function references with indy
This commit is contained in:
committed by
TeamCityServer
parent
3fc7e0ed03
commit
c0fbdb1535
+16
@@ -0,0 +1,16 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: anyNToString.kt
|
||||
fun box() =
|
||||
Sam(Any?::toString).get("OK")
|
||||
|
||||
// FILE: Sam.java
|
||||
public interface Sam {
|
||||
String get(String s);
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: arrayConstructor.kt
|
||||
fun box(): String {
|
||||
val sam = Sam(::IntArray)
|
||||
val arr = sam.get(2)
|
||||
if (arr.size != 2 || arr[0] != 0 || arr[1] != 0)
|
||||
return "Failed"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
|
||||
// FILE: Sam.java
|
||||
public interface Sam {
|
||||
int[] get(int x);
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: enumValues.kt
|
||||
enum class ABC(val x: String = "") {
|
||||
A("OK"), B, C
|
||||
}
|
||||
|
||||
fun box() =
|
||||
Sam(::enumValueOf).get("A").x
|
||||
|
||||
// FILE: Sam.java
|
||||
public interface Sam {
|
||||
ABC get(String x);
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: enumValues.kt
|
||||
enum class ABC(val x: String = "") {
|
||||
A("OK"), B, C
|
||||
}
|
||||
|
||||
fun box() =
|
||||
Sam(::enumValues).get()[0].x
|
||||
|
||||
// FILE: Sam.java
|
||||
public interface Sam {
|
||||
ABC[] get();
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// SAM_CONVERSIONS: INDY
|
||||
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
// FILE: stringNPlus.kt
|
||||
fun test(x: String?, y: Any?) =
|
||||
Sam(String?::plus).get(x, y)
|
||||
|
||||
fun box() =
|
||||
test("O", "K")
|
||||
|
||||
// FILE: Sam.java
|
||||
public interface Sam {
|
||||
String get(String x, Object y);
|
||||
}
|
||||
Reference in New Issue
Block a user