mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-16 00:21:32 +00:00
54 lines
1.7 KiB
Kotlin
Vendored
54 lines
1.7 KiB
Kotlin
Vendored
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
|
|
|
import kotlin.reflect.KProperty
|
|
|
|
class CustomDelegate {
|
|
operator fun get(thisRef: Any?, prop: KProperty<*>): String = prop.name
|
|
operator fun set(thisRef: Any?, prop: KProperty<*>, value: String) {}
|
|
}
|
|
|
|
class OkDelegate {
|
|
operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
|
|
operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
|
|
}
|
|
|
|
class CustomDelegate2 {
|
|
operator fun get(thisRef: Any?, prop: KProperty<*>): String = prop.name
|
|
operator fun set(thisRef: Any?, prop: KProperty<*>, value: String) {}
|
|
|
|
operator fun getValue(thisRef: Any?, prop: KProperty<*>): Int = 5
|
|
operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: Int) {}
|
|
}
|
|
|
|
class CustomDelegate3 {
|
|
operator fun get(thisRef: Any?, prop: KProperty<*>): String = prop.name
|
|
operator fun set(thisRef: Any?, prop: KProperty<*>, value: String) {}
|
|
}
|
|
|
|
operator fun OkDelegate.get(thisRef: Any?, prop: KProperty<*>): Int = 4
|
|
operator fun OkDelegate.set(thisRef: Any?, prop: KProperty<*>, value: Int) {}
|
|
|
|
operator fun CustomDelegate3.getValue(thisRef: Any?, prop: KProperty<*>): Int = 4
|
|
operator fun CustomDelegate3.setValue(thisRef: Any?, prop: KProperty<*>, value: Int) {}
|
|
|
|
class Example {
|
|
|
|
var a <!DELEGATE_RESOLVED_TO_DEPRECATED_CONVENTION, DELEGATE_RESOLVED_TO_DEPRECATED_CONVENTION!>by<!> CustomDelegate()
|
|
val aval <!DELEGATE_RESOLVED_TO_DEPRECATED_CONVENTION!>by<!> CustomDelegate()
|
|
var b by OkDelegate()
|
|
var c by CustomDelegate2()
|
|
var d by CustomDelegate3()
|
|
|
|
fun test() {
|
|
requireString(a)
|
|
requireString(aval)
|
|
requireString(b)
|
|
requireInt(c)
|
|
requireInt(d)
|
|
}
|
|
|
|
fun requireString(s: String) {}
|
|
fun requireInt(n: Int) {}
|
|
|
|
}
|