Additional tests on reflection for Java methods

This commit is contained in:
Alexander Udalov
2015-07-07 23:17:27 +03:00
parent 5962b79126
commit 2492977274
7 changed files with 73 additions and 6 deletions

View File

@@ -0,0 +1,25 @@
import java.util.List;
public class J {
void simple() {}
void objectTypes(
Object o, String s, Object[] oo, String[] ss
) {}
void primitives(
boolean z, char c, byte b, short s, int i, float f, long j, double d
) {}
void primitiveArrays(
boolean[] z, char[] c, byte[] b, short[] s, int[] i, float[] f, long[] j, double[] d
) {}
void multiDimensionalArrays(
int[][][] i, Cloneable[][][][] c
) {}
void wildcards(
List<? extends Number> l, List<? super Cloneable> m
) {}
}

View File

@@ -0,0 +1,17 @@
import kotlin.reflect.KFunction
// Initiate descriptor computation in reflection to ensure that nothing fails
fun test(f: KFunction<*>) {
f.parameters
}
fun box(): String {
test(J::simple)
test(J::objectTypes)
test(J::primitives)
test(J::primitiveArrays)
test(J::multiDimensionalArrays)
test(J::wildcards)
return "OK"
}

View File

@@ -0,0 +1,5 @@
public class J {
void foo(String s, int i) {}
static void bar(J j) {}
}

View File

@@ -0,0 +1,8 @@
import kotlin.test.assertEquals
fun box(): String {
assertEquals(listOf(null, null, null), J::foo.parameters.map { it.name })
assertEquals(listOf(null), J::bar.parameters.map { it.name })
return "OK"
}