Files
kotlin-fork/compiler/testData/codegen/box/annotations/delegatedPropertySetter.kt
T
Ilya Matveev a5e4e0284e Mute some box tests for native backend
This patch mutes the following test categories:
   * Tests with java dependencies (System class,
     java stdlib, jvm-oriented annotations etc).
   * Coroutines tests.
   * Reflection tests.
   * Tests with an inheritance from the standard
     collections.
2017-03-10 19:59:37 +03:00

33 lines
776 B
Kotlin
Vendored

// TODO: muted automatically, investigate should it be ran for JS or not
// IGNORE_BACKEND: JS, NATIVE
// WITH_RUNTIME
import kotlin.reflect.KProperty
@Retention(AnnotationRetention.RUNTIME)
annotation class First
class MyClass() {
public var x: String by Delegate()
@First set
}
class Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): String {
return "OK"
}
operator fun setValue(t: Any?, p: KProperty<*>, i: String) {}
}
fun box(): String {
val e = MyClass::class.java
val e1 = e.getDeclaredMethod("setX", String::class.java).getAnnotations()
if (e1.size != 1) return "Fail E1 size: ${e1.toList()}"
if (e1[0].annotationClass.java != First::class.java) return "Fail: ${e1.toList()}"
return MyClass().x
}