Update compiler tests to use KProperty instead of PropertyMetadata

This commit is contained in:
Alexander Udalov
2015-10-13 14:02:29 +03:00
parent a6846b3967
commit 51bf68ce27
68 changed files with 265 additions and 139 deletions
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
// KT-5612
class Delegate {
public fun getValue(thisRef: Any?, prop: PropertyMetadata): String {
public fun getValue(thisRef: Any?, prop: KProperty<*>): String {
return "OK"
}
}
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
class B {
@@ -18,4 +20,4 @@ class B {
fun box(): String {
B().test()
return "OK"
}
}
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1
fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
class AImpl {
@@ -1,10 +1,12 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = Derived()
fun getValue(t: Any?, p: PropertyMetadata): Derived {
fun getValue(t: Any?, p: KProperty<*>): Derived {
inner = Derived(inner.a + "-get")
return inner
}
fun setValue(t: Any?, p: PropertyMetadata, i: Base) { inner = Derived(inner.a + "-" + i.a + "-set") }
fun setValue(t: Any?, p: KProperty<*>, i: Base) { inner = Derived(inner.a + "-" + i.a + "-set") }
}
class A {
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: Any?, p: PropertyMetadata, s: String = ""): Int = 1
fun getValue(t: Any?, p: KProperty<*>, s: String = ""): Int = 1
}
val prop: Int by Delegate()
@@ -1,10 +1,12 @@
import kotlin.reflect.KProperty
class A {
var prop: Int by Delegate()
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
}
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
class A {
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
fun foo() = Delegate()
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
val p = Delegate()
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: A, p: PropertyMetadata): Int = 1
fun getValue(t: A, p: KProperty<*>): Int = 1
}
val A.prop: Int by Delegate()
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: F.A, p: PropertyMetadata): Int = 1
fun getValue(t: F.A, p: KProperty<*>): Int = 1
}
class F {
@@ -15,4 +17,4 @@ class F {
fun box(): String {
return if(F().foo() == 1) "OK" else "fail"
}
}
@@ -1,6 +1,8 @@
import kotlin.reflect.KProperty
class Delegate<T>(var inner: T) {
fun getValue(t: Any?, p: PropertyMetadata): T = inner
fun setValue(t: Any?, p: PropertyMetadata, i: T) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): T = inner
fun setValue(t: Any?, p: KProperty<*>, i: T) { inner = i }
}
class A {
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
}
fun Delegate.getValue(t: Any?, p: PropertyMetadata): Int = 1
fun Delegate.getValue(t: Any?, p: KProperty<*>): Int = 1
class A {
val prop: Int by Delegate()
@@ -1,8 +1,10 @@
import kotlin.reflect.KProperty
class Delegate {
}
class A {
fun Delegate.getValue(t: Any?, p: PropertyMetadata): Int = 1
fun Delegate.getValue(t: Any?, p: KProperty<*>): Int = 1
val prop: Int by Delegate()
}
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1
fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
class A {
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
class A {
@@ -15,4 +17,3 @@ fun box(): String {
if (c.prop != 2) return "fail set"
return "OK"
}
+3 -1
View File
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1
fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
interface A {
@@ -1,6 +1,8 @@
import kotlin.reflect.KProperty
class Delegate<T>(var inner: T) {
fun getValue(t: Any?, p: PropertyMetadata): T = inner
fun setValue(t: Any?, p: PropertyMetadata, i: T) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): T = inner
fun setValue(t: Any?, p: KProperty<*>, i: T) { inner = i }
}
class A {
+5 -3
View File
@@ -1,6 +1,8 @@
import kotlin.reflect.KProperty
class Delegate<T>(var inner: T) {
fun getValue(t: Any?, p: PropertyMetadata): T = inner
fun setValue(t: Any?, p: PropertyMetadata, i: T) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): T = inner
fun setValue(t: Any?, p: KProperty<*>, i: T) { inner = i }
}
@@ -32,4 +34,4 @@ fun box() : String {
if (FooTrait.B.f != 12) return "fail 6"
return "OK"
}
}
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
class A {
@@ -17,4 +19,4 @@ class A {
fun box(): String {
return A().test()
}
}
@@ -1,4 +1,5 @@
import java.util.IdentityHashMap
import kotlin.reflect.KProperty
class A {
var foo: Int by IntHandler
@@ -12,23 +13,23 @@ val baz: String by StringHandler
val metadatas = IdentityHashMap<PropertyMetadata, Unit>()
val metadatas = IdentityHashMap<KProperty<*>, Unit>()
fun record(p: PropertyMetadata) = metadatas.put(p, Unit)
fun record(p: KProperty<*>) = metadatas.put(p, Unit)
object IntHandler {
fun getValue(t: Any?, p: PropertyMetadata): Int { record(p); return 42 }
fun setValue(t: Any?, p: PropertyMetadata, value: Int) { record(p) }
fun getValue(t: Any?, p: KProperty<*>): Int { record(p); return 42 }
fun setValue(t: Any?, p: KProperty<*>, value: Int) { record(p) }
}
object AnyHandler {
fun getValue(t: Any?, p: PropertyMetadata): Any? { record(p); return 3.14 }
fun setValue(t: Any?, p: PropertyMetadata, value: Any?) { record(p) }
fun getValue(t: Any?, p: KProperty<*>): Any? { record(p); return 3.14 }
fun setValue(t: Any?, p: KProperty<*>, value: Any?) { record(p) }
}
object StringHandler {
fun getValue(t: Any?, p: PropertyMetadata): String { record(p); return p.name }
fun setValue(t: Any?, p: PropertyMetadata, value: String) { record(p) }
fun getValue(t: Any?, p: KProperty<*>): String { record(p); return p.name }
fun setValue(t: Any?, p: KProperty<*>, value: String) { record(p) }
}
fun box(): String {
@@ -40,7 +41,7 @@ fun box(): String {
baz + A.bar
if (metadatas.keys.size != 3)
return "Fail: only three instances of PropertyMetadata should have been created\n${metadatas.keys}"
return "Fail: only three instances of KProperty should have been created\n${metadatas.keySet()}"
return "OK"
}
@@ -1,9 +1,11 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun getValue(t: Any?, p: KProperty<*>): Int = inner
}
fun Delegate.setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun Delegate.setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
class A {
var prop: Int by Delegate()
@@ -1,10 +1,12 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun getValue(t: Any?, p: KProperty<*>): Int = inner
}
class A {
fun Delegate.setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun Delegate.setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
var prop: Int by Delegate()
}
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1
fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
val prop: Int by Delegate()
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
var prop: Int by Delegate()
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate<T>(val f: (T) -> Int) {
fun getValue(t: T, p: PropertyMetadata): Int = f(t)
fun getValue(t: T, p: KProperty<*>): Int = f(t)
}
val p = Delegate<A> { t -> t.foo() }
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1
fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
class A {
@@ -1,7 +1,9 @@
import kotlin.reflect.KProperty
class Delegate {
var inner = 1
fun getValue(t: Any?, p: PropertyMetadata): Int = inner
fun setValue(t: Any?, p: PropertyMetadata, i: Int) { inner = i }
fun getValue(t: Any?, p: KProperty<*>): Int = inner
fun setValue(t: Any?, p: KProperty<*>, i: Int) { inner = i }
}
class A {
+3 -1
View File
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class Delegate {
fun getValue(t: Any?, vararg p: PropertyMetadata): Int = 1
fun getValue(t: Any?, vararg p: KProperty<*>): Int = 1
}
val prop: Int by Delegate()