JS: bound callable references (KT-13573).
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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"
|
||||
}
|
||||
Reference in New Issue
Block a user