Add some tests on adapted references with varargs and reflection
Also rename "varargAndDefaults" test directory to "adaptedReferences"
This commit is contained in:
+8
-6
@@ -1,19 +1,18 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.reflect.KCallable
|
||||
|
||||
fun checkUnit(label: String, fn: () -> Unit) {
|
||||
private fun check(label: String, fn: Any) {
|
||||
if (fn is KCallable<*>) {
|
||||
throw AssertionError("$label is KCallable, ${fn::class.java.simpleName}")
|
||||
}
|
||||
}
|
||||
|
||||
fun checkAny(label: String, fn: () -> Any) {
|
||||
if (fn is KCallable<*>) {
|
||||
throw AssertionError("$label is KCallable, ${fn::class.java.simpleName}")
|
||||
}
|
||||
}
|
||||
fun checkUnit(label: String, fn: () -> Unit) = check(label, fn)
|
||||
fun checkAny(label: String, fn: () -> Any) = check(label, fn)
|
||||
fun checkOneElementForVararg(label: String, fn: (Int) -> Unit) = check(label, fn)
|
||||
|
||||
fun withDefaults(a: Int = 1, b: Int = 2) {}
|
||||
fun withVarargs(vararg xs: Int) {}
|
||||
@@ -33,5 +32,8 @@ fun box(): String {
|
||||
checkUnit("::CWithDefaults", ::CWithDefaults)
|
||||
checkUnit("::CWithVarargs", ::CWithVarargs)
|
||||
|
||||
checkOneElementForVararg("::withVarargs", ::withVarargs)
|
||||
checkOneElementForVararg("::CWithVarargs", ::CWithVarargs)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.reflect.KCallable
|
||||
|
||||
private fun check(label: String, fn: Any) {
|
||||
if (fn !is KCallable<*>) {
|
||||
throw AssertionError("$label is not KCallable, ${fn::class.java.simpleName}")
|
||||
}
|
||||
}
|
||||
|
||||
fun checkVarargAsArray(label: String, fn: (IntArray) -> C) = check(label, fn)
|
||||
|
||||
fun withVarargs(vararg xs: Int): C = C(*xs)
|
||||
class C(vararg xs: Int)
|
||||
|
||||
fun box(): String {
|
||||
checkVarargAsArray("::withVarargs", ::withVarargs)
|
||||
checkVarargAsArray("::C", ::C)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user