Files
kotlin-fork/compiler/testData/codegen/box/jvmOverloads/noRedundantVarargs.kt
T
vladislav.grechko f32367d2c2 Fix IrFunction.isEmptyArray implementation
The previous one was incorrect for K1 since parent of top-level function
is `IrClass`, not `IrPackageFragment`.

The change is non-functional, K1 still worked correctly, but had to do
some extra work when inlining `emptyArray` calls and produces less
performant bytecode.
2024-02-22 07:32:36 +00:00

50 lines
1.0 KiB
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_STDLIB
// FULL_JDK
// FILE: test.kt
@JvmOverloads
fun foo(id: Int, vararg pairs: String = emptyArray()): String {
return "$id: ${java.util.Arrays.toString(pairs)}"
}
@JvmOverloads
fun foo2(id: Int, s: Int = 56, vararg pairs: String): String {
return "$id, $s: ${java.util.Arrays.toString(pairs)}"
}
fun box(): String {
if (A.bar1() != "1: []") return "fail 1"
if (A.bar2() != "2: [OK]") return "fail 2"
if (A.bar3() != "3, 56: []") return "fail 3"
if (A.bar4() != "4, 56: [OK]") return "fail 4"
if (A.bar5() != "5, 1491: [OK]") return "fail 5"
return "OK"
}
// FILE: A.java
public class A {
public static String bar1() {
return TestKt.foo(1);
}
public static String bar2() {
return TestKt.foo(2, "OK");
}
public static String bar3() {
return TestKt.foo2(3);
}
public static String bar4() {
return TestKt.foo2(4, "OK");
}
public static String bar5() {
return TestKt.foo2(5, 1491, "OK");
}
}