9a4a3d1f49
^KT-56543 Merge-request: KT-MR-9299 Merged-by: Dmitrii Gridin <dmitry.gridin@jetbrains.com>
29 lines
974 B
Kotlin
Vendored
29 lines
974 B
Kotlin
Vendored
// IGNORE_REVERSED_RESOLVE
|
|
// !DUMP_CFG
|
|
|
|
import kotlin.properties.ReadWriteProperty
|
|
import kotlin.reflect.KProperty
|
|
|
|
abstract class DelegateProvider<in Type>
|
|
|
|
fun <Type : Base, Base : DelegateProvider<Base>, Target : Any> Type.delegate(
|
|
factory: () -> ReadWriteProperty<Type, Target>
|
|
): ReadWriteProperty<Type, Target> = null!!
|
|
|
|
class IssueListView : DelegateProvider<IssueListView>() {
|
|
fun updateFrom(any: Any) {}
|
|
}
|
|
|
|
class IssuesListUserProfile : DelegateProvider<IssuesListUserProfile>() {
|
|
var issueListView by delegate {
|
|
object : ReadWriteProperty<IssuesListUserProfile, IssueListView> {
|
|
override fun getValue(thisRef: IssuesListUserProfile, property: KProperty<*>): IssueListView {
|
|
return IssueListView()
|
|
}
|
|
|
|
override fun setValue(thisRef: IssuesListUserProfile, property: KProperty<*>, value: IssueListView) {
|
|
return IssueListView().updateFrom(value)
|
|
}
|
|
}
|
|
}
|
|
} |