Files
kotlin/compiler/testData/codegen/box/callableReference/bound/multiCase.kt
2016-11-28 16:33:58 +03:00

52 lines
1000 B
Kotlin
Vendored

class A(var v: Int) {
fun f(x: Int) = x * v
}
fun A.g(x: Int) = x * f(x);
var A.w: Int
get() = 1000 * v
set(c: Int) {
v = c + 10
}
object F {
var u = 0
}
fun box(): String {
val a = A(5)
val av = a::v
if (av() != 5) return "fail1: ${av()}"
if (av.get() != 5) return "fail2: ${av.get()}"
av.set(7)
if (a.v != 7) return "fail3: ${a.v}"
val af = a::f
if (af(10) != 70) return "fail4: ${af(10)}"
val ag = a::g
if (ag(10) != 700) return "fail5: ${ag(10)}"
val aw = a::w
if (aw() != 7000) return "fail6: ${aw()}"
if (aw.get() != 7000) return "fail7: ${aw.get()}"
aw.set(5)
if (a.v != 15) return "fail8: ${a.v}"
val fu = F::u
if (fu() != 0) return "fail9: ${fu()}"
if (fu.get() != 0) return "fail10: ${fu.get()}"
fu.set(8)
if (F.u != 8) return "fail11: ${F.u}"
val x = 100
fun A.lf() = v * x;
val alf = a::lf
if (alf() != 1500) return "fail9: ${alf()}"
return "OK"
}