Files
kotlin/compiler/testData/codegen/boxWithStdlib/native/nativePropertyAccessors.kt
Pavel V. Talanov 59f192ef90 Replace 'class object' with 'default object' in renderers and test data
Includes changes to decompiled text
Old syntax is used in builtins and project code for now
2015-03-06 19:36:54 +03:00

49 lines
1.2 KiB
Kotlin

class C {
default object {
val defaultGetter: Int = 1
[native] get
var defaultSetter: Int = 1
[native] get
[native] set
}
val defaultGetter: Int = 1
[native] get
var defaultSetter: Int = 1
[native] get
[native] set
}
val defaultGetter: Int = 1
[native] get
var defaultSetter: Int = 1
[native] get
[native] set
fun check(body: () -> Unit, signature: String): String? {
try {
body()
return "Link error expected"
}
catch (e: java.lang.UnsatisfiedLinkError) {
if (e.getMessage() != signature) return "Fail $signature: " + e.getMessage()
}
return null
}
fun box(): String {
return check({defaultGetter}, "_DefaultPackage.getDefaultGetter()I")
?: check({defaultSetter = 1}, "_DefaultPackage.setDefaultSetter(I)V")
?: check({C.defaultGetter}, "C\$Default.getDefaultGetter()I")
?: check({C.defaultSetter = 1}, "C\$Default.setDefaultSetter(I)V")
?: check({C().defaultGetter}, "C.getDefaultGetter()I")
?: check({C().defaultSetter = 1}, "C.setDefaultSetter(I)V")
?: "OK"
}