Pass KProperty instances to property delegates

Inherit KProperty from PropertyMetadata, cache corresponding KProperty objects
instead of PropertyMetadataImpl objects, add support for properties with 2
receivers
This commit is contained in:
Alexander Udalov
2015-10-12 12:11:36 +03:00
parent 4614e74e3f
commit 3c74f48f91
14 changed files with 128 additions and 129 deletions
@@ -4,8 +4,8 @@ operator fun Any.getValue(x: Any?, y: Any): Any = null!!
class <!CONFLICTING_JVM_DECLARATIONS!>C<!> {
val x by 1
<!CONFLICTING_JVM_DECLARATIONS!>val `$propertyMetadata`: Array<PropertyMetadata><!> = null!!
<!CONFLICTING_JVM_DECLARATIONS!>val `$delegatedProperties`: Array<PropertyMetadata><!> = null!!
}
val x by 1
<!CONFLICTING_JVM_DECLARATIONS!>val `$propertyMetadata`: Array<PropertyMetadata><!> = null!!
<!CONFLICTING_JVM_DECLARATIONS!>val `$delegatedProperties`: Array<PropertyMetadata><!> = null!!
@@ -1,12 +1,12 @@
package
public val `$propertyMetadata`: kotlin.Array<kotlin.PropertyMetadata>
public val `$delegatedProperties`: kotlin.Array<kotlin.PropertyMetadata>
public val x: kotlin.Any
public operator fun kotlin.Any.getValue(/*0*/ x: kotlin.Any?, /*1*/ y: kotlin.Any): kotlin.Any
public final class C {
public constructor C()
public final val `$propertyMetadata`: kotlin.Array<kotlin.PropertyMetadata>
public final val `$delegatedProperties`: kotlin.Array<kotlin.PropertyMetadata>
public final val x: kotlin.Any
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int