Files
kotlin-fork/js/js.translator/testData/box/callableReference/property/extensionProperty.kt
T
Roman Artemev 1338d6d66f Update tests
2018-10-19 14:07:20 +03:00

43 lines
841 B
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1300
package foo
import kotlin.reflect.KMutableProperty1
open class A(var msg:String) {
}
class B:A("FromB") {
}
var global:String = ""
var A.ext:String
get() = ":A.ext ${this.msg}:"
set(value) { global = ":A.ext ${value}" }
var B.ext:String
get() = ":B.ext ${this.msg}:"
set(value) { global = ":B.ext ${value}" }
fun box(): String {
val a = A("Test")
var refAExt = A::ext
var refBExt: KMutableProperty1<B, String> = B::ext
assertEquals("ext", refAExt.name)
assertEquals("ext", refBExt.name)
assertEquals(":A.ext Test:", refAExt.get(a))
assertEquals(":B.ext FromB:", refBExt.get(B()))
refAExt.set(a, "newA")
assertEquals(":A.ext newA", global)
global = ""
refBExt.set(B(), "newB")
assertEquals(":B.ext newB", global)
return "OK"
}