Files
kotlin-fork/compiler/testData/writeFlags/property/classObject/rename/delegatedAndProperty.kt
T
Alexander Udalov b68e47f705 Move JVM-specific annotations out of built-ins
Move 'volatile' and 'synchronized' to package 'kotlin' in stdlib. Also delete
'atomic', since its support was never implemented
2014-03-02 19:54:55 +04:00

32 lines
707 B
Kotlin

public open class TestDelegate<T: Any>(private val initializer: () -> T) {
private var value: T? = null
public open fun get(thisRef: Any?, desc: PropertyMetadata): T {
if (value == null) {
value = initializer()
}
return value!!
}
public open fun set(thisRef: Any?, desc: PropertyMetadata, svalue : T) {
value = svalue
}
}
class Test {
public var prop: String = ""
class object {
public var prop: Int by TestDelegate({10})
}
}
// TESTED_OBJECT_KIND: property
// TESTED_OBJECTS: Test, prop
// FLAGS: ACC_PRIVATE
// TESTED_OBJECT_KIND: property
// TESTED_OBJECTS: Test, prop$delegate
// FLAGS: ACC_STATIC, ACC_PRIVATE, ACC_FINAL