mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
33 lines
726 B
Kotlin
Vendored
33 lines
726 B
Kotlin
Vendored
// IGNORE_BACKEND_FIR: JVM_IR
|
|
// TARGET_BACKEND: JVM
|
|
|
|
// 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
|
|
}
|