JS backend: testFiles -> testData
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
var inner = 1
|
||||
fun get(t: Any?, p: PropertyMetadata): Int = inner
|
||||
fun set(t: Any?, p: PropertyMetadata, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
fun foo() = Delegate()
|
||||
|
||||
class A {
|
||||
var prop: Int by foo()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val c = A()
|
||||
if (c.prop != 1) return "fail get"
|
||||
c.prop = 2
|
||||
if (c.prop != 2) return "fail set"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
var inner = 1
|
||||
fun get(t: Any?, p: PropertyMetadata): Int = inner
|
||||
fun set(t: Any?, p: PropertyMetadata, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
val p = Delegate()
|
||||
|
||||
class A {
|
||||
var prop: Int by p
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val c = A()
|
||||
if (c.prop != 1) return "fail get"
|
||||
c.prop = 2
|
||||
if (c.prop != 2) return "fail set"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
fun get(t: A, p: PropertyMetadata): Int = 1
|
||||
}
|
||||
|
||||
val A.prop: Int by Delegate()
|
||||
|
||||
class A {
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return if (A().prop == 1) "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
var inner = 1
|
||||
fun get(t: Any?, p: PropertyMetadata): Int = inner
|
||||
fun set(t: Any?, p: PropertyMetadata, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
val p = Delegate()
|
||||
|
||||
class A {
|
||||
var prop: Int by p
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val c = A()
|
||||
if (c.prop != 1) return "fail get"
|
||||
c.prop = 2
|
||||
if (c.prop != 2) return "fail set"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
}
|
||||
|
||||
fun Delegate.get(t: Any?, p: PropertyMetadata): Int = 1
|
||||
|
||||
class A {
|
||||
val prop: Int by Delegate()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return if (A().prop == 1) "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package foo
|
||||
|
||||
trait WithName {
|
||||
var name: String
|
||||
}
|
||||
|
||||
class GetPropertyName() {
|
||||
fun get(withName: WithName, property: PropertyMetadata): String {
|
||||
return withName.name + ":" + property.name;
|
||||
}
|
||||
fun set(withName: WithName, property: PropertyMetadata, value: String) {
|
||||
withName.name = value + ":" + property.name
|
||||
}
|
||||
}
|
||||
|
||||
class A : WithName {
|
||||
override var name = "propertyName"
|
||||
val d = GetPropertyName()
|
||||
|
||||
val a by d
|
||||
var OK by d
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A()
|
||||
if (a.a != "propertyName:a") return "a.a != 'propertyName:a', it: " + a.a
|
||||
if (a.OK != "propertyName:OK") return "a.OK != 'propertyName:aOK', it: " + a.OK
|
||||
a.OK = "property"
|
||||
|
||||
if (a.a != "property:OK:a") return "a.a != 'property:OK:a', it: " + a.a
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
var inner = 1
|
||||
fun get(t: Any?, p: PropertyMetadata): Int = inner
|
||||
}
|
||||
|
||||
fun Delegate.set(t: Any?, p: PropertyMetadata, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
|
||||
class A {
|
||||
var prop: Int by Delegate()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val c = A()
|
||||
if (c.prop != 1) return "fail get"
|
||||
c.prop = 2
|
||||
if (c.prop != 2) return "fail set"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package foo
|
||||
|
||||
trait WithNumber {
|
||||
var number: Int
|
||||
}
|
||||
|
||||
class IncNumber(val inc: Int) {
|
||||
fun get(withNumber: WithNumber, property: PropertyMetadata): Int {
|
||||
return withNumber.number + inc;
|
||||
}
|
||||
fun set(withNumber: WithNumber, property: PropertyMetadata, value: Int) {
|
||||
withNumber.number = value;
|
||||
}
|
||||
}
|
||||
|
||||
class A : WithNumber {
|
||||
override var number: Int = 5
|
||||
var nextNumber by IncNumber(3)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (A().nextNumber != 8) return "A().nextNumber != 8, it: ${A().nextNumber}"
|
||||
|
||||
val a = A()
|
||||
a.nextNumber = 10;
|
||||
if (a.number != 10) return "a.number != 10, it: " + a.number
|
||||
if (a.nextNumber != 13) return "a.nextNumber != 13, it: " + a.nextNumber
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
fun get(t: Any?, p: PropertyMetadata): Int = 1
|
||||
}
|
||||
|
||||
val prop: Int by Delegate()
|
||||
|
||||
fun box(): String {
|
||||
return if (prop == 1) "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package foo
|
||||
|
||||
class Delegate {
|
||||
var inner = 1
|
||||
fun get(t: Any?, p: PropertyMetadata): Int = inner
|
||||
fun set(t: Any?, p: PropertyMetadata, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
var prop: Int by Delegate()
|
||||
|
||||
fun box(): String {
|
||||
if (prop != 1) return "fail get"
|
||||
prop = 2
|
||||
if (prop != 2) return "fail set"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package foo
|
||||
|
||||
trait Getter<T> {
|
||||
fun get(): T
|
||||
}
|
||||
|
||||
class Delegate<T>(val getter: Getter<T>) {
|
||||
var t: T? = null
|
||||
fun get(obj: Any, property: PropertyMetadata): T {
|
||||
if (t != null) {
|
||||
return t!!
|
||||
}
|
||||
return getter.get()
|
||||
}
|
||||
fun set(obj: Any, property: PropertyMetadata, value: T) {
|
||||
t = value
|
||||
}
|
||||
}
|
||||
|
||||
class A : Getter<Int> {
|
||||
var value = 0
|
||||
override fun get(): Int {
|
||||
return value
|
||||
}
|
||||
val delegate = Delegate(this)
|
||||
|
||||
val a by delegate
|
||||
var b by delegate
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A()
|
||||
if (a.a != 0) return "a.a != 0"
|
||||
if (a.b != 0) return "a.b != 0"
|
||||
|
||||
a.b = 4
|
||||
if (a.a != 4) return "a.a != 4"
|
||||
if (a.b != 4) return "a.b != 4"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user