048a9b686e
Each property reference obtained by the '::' operator now causes back-end to generate an anonymous subclass of the corresponding KProperty class, with the customized behavior. This fixes a number of issues: - get/set/name of property references now works without kotlin-reflect.jar in the classpath - get/set/name methods are now overridden with statically-generated property access instead of the default KPropertyImpl's behavior of using Java reflection, which should be a lot faster - references to private/protected properties now work without the need to set 'accessible' flag, because corresponding synthetic accessors are generated at compile-time near the target property #KT-6870 Fixed #KT-6873 Fixed #KT-7033 Fixed
23 lines
407 B
Kotlin
Vendored
23 lines
407 B
Kotlin
Vendored
class Test {
|
|
private var iv = 1
|
|
|
|
public fun exec() {
|
|
val t = object : Thread() {
|
|
override fun run() {
|
|
::iv.get(this@Test)
|
|
::iv.set(this@Test, 2)
|
|
}
|
|
}
|
|
t.start()
|
|
t.join(1000)
|
|
}
|
|
|
|
fun result() = if (iv == 2) "OK" else "Fail $iv"
|
|
}
|
|
|
|
fun box(): String {
|
|
val t = Test()
|
|
t.exec()
|
|
return t.result()
|
|
}
|