Added tests.
This commit is contained in:
@@ -593,6 +593,26 @@ task classDelegation_withBridge(type: RunKonanTest) {
|
|||||||
source = "codegen/classDelegation/withBridge.kt"
|
source = "codegen/classDelegation/withBridge.kt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task delegatedProperty_simpleVal(type: RunKonanTest) {
|
||||||
|
goldValue = "x\n42\n"
|
||||||
|
source = "codegen/delegatedProperty/simpleVal.kt"
|
||||||
|
}
|
||||||
|
|
||||||
|
task delegatedProperty_simpleVar(type: RunKonanTest) {
|
||||||
|
goldValue = "get x\n42\nset x\nget x\n117\n"
|
||||||
|
source = "codegen/delegatedProperty/simpleVar.kt"
|
||||||
|
}
|
||||||
|
|
||||||
|
task delegatedProperty_packageLevel(type: RunKonanTest) {
|
||||||
|
goldValue = "x\n42\n"
|
||||||
|
source = "codegen/delegatedProperty/packageLevel.kt"
|
||||||
|
}
|
||||||
|
|
||||||
|
task delegatedProperty_local(type: RunKonanTest) {
|
||||||
|
goldValue = "x\n42\n"
|
||||||
|
source = "codegen/delegatedProperty/local.kt"
|
||||||
|
}
|
||||||
|
|
||||||
task array0(type: RunKonanTest) {
|
task array0(type: RunKonanTest) {
|
||||||
goldValue = "5\n6\n7\n8\n9\n10\n11\n12\n13\n"
|
goldValue = "5\n6\n7\n8\n9\n10\n11\n12\n13\n"
|
||||||
source = "runtime/collections/array0.kt"
|
source = "runtime/collections/array0.kt"
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
|
fun foo(): Int {
|
||||||
|
class Delegate {
|
||||||
|
operator fun getValue(receiver: Any?, p: KProperty<*>): Int {
|
||||||
|
println(p.name)
|
||||||
|
return 42
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val x: Int by Delegate()
|
||||||
|
|
||||||
|
return x
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
println(foo())
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
|
class Delegate {
|
||||||
|
operator fun getValue(receiver: Any?, p: KProperty<*>): Int {
|
||||||
|
println(p.name)
|
||||||
|
return 42
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val x: Int by Delegate()
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
println(x)
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
|
class Delegate {
|
||||||
|
operator fun getValue(receiver: Any?, p: KProperty<*>): Int {
|
||||||
|
println(p.name)
|
||||||
|
return 42
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class C {
|
||||||
|
val x: Int by Delegate()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
println(C().x)
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
|
class Delegate {
|
||||||
|
var f: Int = 42
|
||||||
|
|
||||||
|
operator fun getValue(receiver: Any?, p: KProperty<*>): Int {
|
||||||
|
println("get ${p.name}")
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun setValue(receiver: Any?, p: KProperty<*>, value: Int) {
|
||||||
|
println("set ${p.name}")
|
||||||
|
f = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class C {
|
||||||
|
var x: Int by Delegate()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
val c = C()
|
||||||
|
println(c.x)
|
||||||
|
c.x = 117
|
||||||
|
println(c.x)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user