609d696202
Annotation arguments with default values are rendered as ... if renderDefaultAnnotationArguments is true. Tests: java retention does not taken into account by Descriptor comparator. Java retentinon changed to kotlin retention in some tests + one new test with java retention added. More accurate tests for intentions in byte code (visibility controlled).
25 lines
604 B
Kotlin
Vendored
25 lines
604 B
Kotlin
Vendored
annotation(retention = AnnotationRetention.RUNTIME) class First
|
|
|
|
class MyClass() {
|
|
public var x: String by Delegate()
|
|
@First set
|
|
}
|
|
|
|
class Delegate {
|
|
fun get(t: Any?, p: PropertyMetadata): String {
|
|
return "OK"
|
|
}
|
|
|
|
fun set(t: Any?, p: PropertyMetadata, i: String) {}
|
|
}
|
|
|
|
fun box(): String {
|
|
val e = javaClass<MyClass>()
|
|
|
|
val e1 = e.getDeclaredMethod("setX", javaClass<String>()).getAnnotations()
|
|
if (e1.size() != 1) return "Fail E1 size: ${e1.toList()}"
|
|
if (e1[0].annotationType() != javaClass<First>()) return "Fail: ${e1.toList()}"
|
|
|
|
return MyClass().x
|
|
}
|