Inherit KProperty interfaces from function types
To be able to write the following: listOfStrings.map(String::length)
This commit is contained in:
@@ -31,6 +31,8 @@ internal open class KProperty0Impl<out R> : DescriptorBasedProperty<R>, KPropert
|
||||
|
||||
override fun get(): R = getter.call()
|
||||
|
||||
override fun invoke(): R = get()
|
||||
|
||||
class Getter<out R>(override val property: KProperty0Impl<R>) : KPropertyImpl.Getter<R>(), KProperty0.Getter<R> {
|
||||
override fun invoke(): R = property.get()
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@ internal open class KProperty1Impl<T, out R> : DescriptorBasedProperty<R>, KProp
|
||||
|
||||
override fun get(receiver: T): R = getter.call(receiver)
|
||||
|
||||
override fun invoke(receiver: T): R = get(receiver)
|
||||
|
||||
class Getter<T, out R>(override val property: KProperty1Impl<T, R>) : KPropertyImpl.Getter<R>(), KProperty1.Getter<T, R> {
|
||||
override fun invoke(receiver: T): R = property.get(receiver)
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@ internal open class KProperty2Impl<D, E, out R> : DescriptorBasedProperty<R>, KP
|
||||
|
||||
override fun get(receiver1: D, receiver2: E): R = getter.call(receiver1, receiver2)
|
||||
|
||||
override fun invoke(receiver1: D, receiver2: E): R = get(receiver1, receiver2)
|
||||
|
||||
class Getter<D, E, out R>(override val property: KProperty2Impl<D, E, R>) : KPropertyImpl.Getter<R>(), KProperty2.Getter<D, E, R> {
|
||||
override fun invoke(receiver1: D, receiver2: E): R = property.get(receiver1, receiver2)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user