Additional tests on reflection for Java methods
This commit is contained in:
@@ -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
|
||||||
|
) {}
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
public class J {
|
||||||
|
void foo(String s, int i) {}
|
||||||
|
|
||||||
|
static void bar(J j) {}
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
+18
-6
@@ -65,12 +65,6 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege
|
|||||||
doTestWithJava(fileName);
|
doTestWithJava(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("referenceToJavaFieldOfKotlinSubclass")
|
|
||||||
public void testReferenceToJavaFieldOfKotlinSubclass() throws Exception {
|
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/referenceToJavaFieldOfKotlinSubclass/");
|
|
||||||
doTestWithJava(fileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxWithJava/annotationsWithKClass")
|
@TestMetadata("compiler/testData/codegen/boxWithJava/annotationsWithKClass")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
@@ -279,6 +273,12 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege
|
|||||||
doTestWithJava(fileName);
|
doTestWithJava(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaMethodsSmokeTest")
|
||||||
|
public void testJavaMethodsSmokeTest() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/reflection/javaMethodsSmokeTest/");
|
||||||
|
doTestWithJava(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("javaPropertyInheritedInKotlin")
|
@TestMetadata("javaPropertyInheritedInKotlin")
|
||||||
public void testJavaPropertyInheritedInKotlin() throws Exception {
|
public void testJavaPropertyInheritedInKotlin() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/reflection/javaPropertyInheritedInKotlin/");
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/reflection/javaPropertyInheritedInKotlin/");
|
||||||
@@ -303,6 +303,18 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege
|
|||||||
doTestWithJava(fileName);
|
doTestWithJava(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("parametersHaveNoNames")
|
||||||
|
public void testParametersHaveNoNames() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/reflection/parametersHaveNoNames/");
|
||||||
|
doTestWithJava(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("referenceToJavaFieldOfKotlinSubclass")
|
||||||
|
public void testReferenceToJavaFieldOfKotlinSubclass() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithJava/reflection/referenceToJavaFieldOfKotlinSubclass/");
|
||||||
|
doTestWithJava(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxWithJava/secondaryConstructors")
|
@TestMetadata("compiler/testData/codegen/boxWithJava/secondaryConstructors")
|
||||||
|
|||||||
Reference in New Issue
Block a user