Update compiler tests to use KProperty instead of PropertyMetadata
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
// This test was adapted from compiler/testData/codegen/boxWithStdlib/callableReference/property/.
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
object NumberDecrypter {
|
||||
fun getValue(instance: Any?, data: PropertyMetadata) = when (data.name) {
|
||||
fun getValue(instance: Any?, data: KProperty<*>) = when (data.name) {
|
||||
"four" -> 4
|
||||
"two" -> 2
|
||||
else -> throw Exception()
|
||||
|
||||
+4
-2
@@ -1,14 +1,16 @@
|
||||
// This test was adapted from compiler/testData/codegen/boxWithStdlib/callableReference/property/.
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
object Delegate {
|
||||
var value = "lol"
|
||||
|
||||
fun getValue(instance: Any?, data: PropertyMetadata): String {
|
||||
fun getValue(instance: Any?, data: KProperty<*>): String {
|
||||
return value
|
||||
}
|
||||
|
||||
fun setValue(instance: Any?, data: PropertyMetadata, newValue: String) {
|
||||
fun setValue(instance: Any?, data: KProperty<*>, newValue: String) {
|
||||
value = newValue
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -1,5 +1,7 @@
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
class State(var realValue: Int)
|
||||
|
||||
fun format(event: String, property: String, value: Int): String
|
||||
@@ -8,12 +10,12 @@ fun format(event: String, property: String, value: Int): String
|
||||
object LoggerDelegate {
|
||||
var log = ""
|
||||
|
||||
fun getValue(state: State, desc: PropertyMetadata): Int {
|
||||
fun getValue(state: State, desc: KProperty<*>): Int {
|
||||
log += format("get", desc.name, state.realValue)
|
||||
return state.realValue
|
||||
}
|
||||
|
||||
fun setValue(state: State, desc: PropertyMetadata, value: Int) {
|
||||
fun setValue(state: State, desc: KProperty<*>, value: Int) {
|
||||
log += format("set", desc.name, value)
|
||||
state.realValue = value
|
||||
}
|
||||
@@ -36,4 +38,4 @@ fun box(): String {
|
||||
|
||||
assertEquals(expectedLog, LoggerDelegate.log)
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package foo
|
||||
|
||||
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) {
|
||||
fun getValue(t: Any?, p: KProperty<*>): Int = inner
|
||||
fun setValue(t: Any?, p: KProperty<*>, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
+4
-2
@@ -1,9 +1,11 @@
|
||||
package foo
|
||||
|
||||
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) {
|
||||
fun getValue(t: Any?, p: KProperty<*>): Int = inner
|
||||
fun setValue(t: Any?, p: KProperty<*>, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
+4
-2
@@ -1,9 +1,11 @@
|
||||
package foo
|
||||
|
||||
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) {
|
||||
fun getValue(t: Any?, p: KProperty<*>): Int = inner
|
||||
fun setValue(t: Any?, p: KProperty<*>, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package foo
|
||||
|
||||
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,14 +1,16 @@
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
interface WithName {
|
||||
var name: String
|
||||
}
|
||||
|
||||
class GetPropertyName() {
|
||||
fun getValue(withName: WithName, property: PropertyMetadata): String {
|
||||
fun getValue(withName: WithName, property: KProperty<*>): String {
|
||||
return withName.name + ":" + property.name;
|
||||
}
|
||||
fun setValue(withName: WithName, property: PropertyMetadata, value: String) {
|
||||
fun setValue(withName: WithName, property: KProperty<*>, value: String) {
|
||||
withName.name = value + ":" + property.name
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package foo
|
||||
|
||||
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) {
|
||||
fun Delegate.setValue(t: Any?, p: KProperty<*>, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
interface WithNumber {
|
||||
var number: Int
|
||||
}
|
||||
|
||||
class IncNumber(val inc: Int) {
|
||||
fun getValue(withNumber: WithNumber, property: PropertyMetadata): Int {
|
||||
fun getValue(withNumber: WithNumber, property: KProperty<*>): Int {
|
||||
return withNumber.number + inc;
|
||||
}
|
||||
fun setValue(withNumber: WithNumber, property: PropertyMetadata, value: Int) {
|
||||
fun setValue(withNumber: WithNumber, property: KProperty<*>, value: Int) {
|
||||
withNumber.number = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package foo
|
||||
|
||||
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,9 +1,11 @@
|
||||
package foo
|
||||
|
||||
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) {
|
||||
fun getValue(t: Any?, p: KProperty<*>): Int = inner
|
||||
fun setValue(t: Any?, p: KProperty<*>, i: Int) {
|
||||
inner = i
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
interface Getter<T> {
|
||||
fun get(): T
|
||||
}
|
||||
|
||||
class Delegate<T>(val getter: Getter<T>) {
|
||||
var t: T? = null
|
||||
fun getValue(obj: Any, property: PropertyMetadata): T {
|
||||
fun getValue(obj: Any, property: KProperty<*>): T {
|
||||
if (t != null) {
|
||||
return t!!
|
||||
}
|
||||
return getter.get()
|
||||
}
|
||||
fun setValue(obj: Any, property: PropertyMetadata, value: T) {
|
||||
fun setValue(obj: Any, property: KProperty<*>, value: T) {
|
||||
t = value
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -1,5 +1,7 @@
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
class State(var value: Int)
|
||||
|
||||
interface Base {
|
||||
@@ -7,9 +9,9 @@ interface Base {
|
||||
}
|
||||
|
||||
class Delegate(val multiplier: Int) {
|
||||
fun getValue(state: State, desc: PropertyMetadata): Int = multiplier * state.value
|
||||
fun getValue(state: State, desc: KProperty<*>): Int = multiplier * state.value
|
||||
|
||||
fun setValue(state: State, desc: PropertyMetadata, value: Int) {
|
||||
fun setValue(state: State, desc: KProperty<*>, value: Int) {
|
||||
state.value = value / multiplier
|
||||
}
|
||||
|
||||
@@ -37,4 +39,4 @@ fun box(): String {
|
||||
assertEquals(10, d.getValueMultiplied(state))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user