JVM_IR KT-46839 lower varargs for *arrayOf function references

This commit is contained in:
Dmitry Petrov
2021-05-21 15:44:46 +03:00
committed by teamcityserver
parent 6ca7b39f6a
commit ba00709e4d
14 changed files with 214 additions and 32 deletions
@@ -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: arrayOf.kt
fun box() =
Sam(::arrayOf).get(arrayOf("OK"))[0]
// FILE: Sam.java
public interface Sam {
String[] get(String[] s);
}
@@ -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: charArrayOf.kt
fun box(): String {
val sam = Sam(::charArrayOf)
val arr = sam.get(charArrayOf('O', 'K'))
return "${arr[0]}${arr[1]}"
}
// FILE: Sam.java
public interface Sam {
char[] get(char[] s);
}