Sort parameters of Java annotation constructors by name for stability
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
// WITH_REFLECT
|
||||
// FILE: J.java
|
||||
|
||||
public @interface J {
|
||||
short s();
|
||||
long j();
|
||||
boolean z();
|
||||
int i();
|
||||
float f();
|
||||
char c();
|
||||
double d();
|
||||
}
|
||||
|
||||
// FILE: K.kt
|
||||
|
||||
import kotlin.reflect.KParameter
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
fun box(): String {
|
||||
val ctor = J::class.constructors.single()
|
||||
|
||||
// We sort parameters by name for consistency
|
||||
assertEquals(listOf("c", "d", "f", "i", "j", "s", "z"), ctor.parameters.map { it.name })
|
||||
assert(ctor.parameters.all { it.kind == KParameter.Kind.VALUE })
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -13005,6 +13005,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("javaAnnotationConstructor.kt")
|
||||
public void testJavaAnnotationConstructor() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/parameters/javaAnnotationConstructor.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("javaParametersHaveNoNames.kt")
|
||||
public void testJavaParametersHaveNoNames() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/reflection/parameters/javaParametersHaveNoNames.kt");
|
||||
|
||||
Reference in New Issue
Block a user