Files
kotlin-fork/compiler/testData/codegen/box/parametersMetadata/delegation.kt
T
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00

37 lines
884 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_STDLIB
// FULL_JDK
// JAVAC_OPTIONS: -parameters
// PARAMETERS_METADATA
// JVM_TARGET: 1.8
// FILE: JavaInterface.java
public interface JavaInterface {
void plugin(String id);
}
// FILE: test.kt
import kotlin.test.assertEquals
interface KotlinInterface {
fun plugin(id: String)
}
class KotlinDelegate(impl: KotlinInterface) : KotlinInterface by impl
class JavaDelegate(impl: JavaInterface) : JavaInterface by impl
private fun check(javaClass: Class<*>) {
val pluginMethod = javaClass.getDeclaredMethod("plugin", String::class.java)
assertEquals(listOf("id"), pluginMethod.parameters.map { it.name }, "Incorrect parameters for $javaClass")
}
fun box(): String {
check(JavaInterface::class.java)
check(KotlinInterface::class.java)
check(KotlinDelegate::class.java)
check(JavaDelegate::class.java)
return "OK"
}