Local delegated properties implementation + some more fixes

This commit is contained in:
Dmitry Petrov
2017-03-28 13:03:12 +03:00
parent c9777fd79f
commit 2b48908586
25 changed files with 335 additions and 100 deletions
@@ -1,5 +1,6 @@
FILE /local.kt
CLASS CLASS Delegate
$new: VALUE_PARAMETER <receiver: Delegate>
CONSTRUCTOR public constructor Delegate(value: kotlin.String)
VALUE_PARAMETER value-parameter value: kotlin.String
BLOCK_BODY
@@ -27,6 +28,7 @@ FILE /local.kt
FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
CLASS CLASS DelegateProvider
$new: VALUE_PARAMETER <receiver: DelegateProvider>
CONSTRUCTOR public constructor DelegateProvider(value: kotlin.String)
VALUE_PARAMETER value-parameter value: kotlin.String
BLOCK_BODY
@@ -62,11 +64,11 @@ FILE /local.kt
$this: CALL 'constructor DelegateProvider(String)' type=DelegateProvider origin=null
value: CONST String type=kotlin.String value='OK'
thisRef: CONST Null type=kotlin.Nothing? value='null'
property: CALLABLE_REFERENCE 'testMember: String' type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'testMember: String' delegate='`testMember$delegate`: Delegate' getter='<get-testMember>(): String' setter=null type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR local final fun <get-testMember>(): kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-testMember>(): String'
CALL 'getValue(Any?, Any?): String' type=kotlin.String origin=null
$this: GET_VAR '`testMember$delegate`: Delegate' type=Delegate origin=null
thisRef: CONST Null type=kotlin.Nothing? value='null'
property: CALLABLE_REFERENCE 'testMember: String' type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
property: LOCAL_DELEGATED_PROPERTY_REFERENCE 'testMember: String' delegate='`testMember$delegate`: Delegate' getter='<get-testMember>(): String' setter=null type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
@@ -1,5 +1,6 @@
FILE /localDifferentReceivers.kt
CLASS CLASS MyClass
$new: VALUE_PARAMETER <receiver: MyClass>
CONSTRUCTOR public constructor MyClass(value: kotlin.String)
VALUE_PARAMETER value-parameter value: kotlin.String
BLOCK_BODY
@@ -41,14 +42,14 @@ FILE /localDifferentReceivers.kt
$receiver: CALL 'constructor MyClass(String)' type=MyClass origin=null
value: CONST String type=kotlin.String value='O'
host: CONST Null type=kotlin.Nothing? value='null'
p: CALLABLE_REFERENCE 'testO: String' type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
p: LOCAL_DELEGATED_PROPERTY_REFERENCE 'testO: String' delegate='`testO$delegate`: String' getter='<get-testO>(): String' setter=null type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
FUN DELEGATED_PROPERTY_ACCESSOR local final fun <get-testO>(): kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-testO>(): String'
CALL 'getValue(Any?, Any) on String: String' type=kotlin.String origin=null
$receiver: GET_VAR '`testO$delegate`: String' type=kotlin.String origin=null
receiver: CONST Null type=kotlin.Nothing? value='null'
p: CALLABLE_REFERENCE 'testO: String' type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
p: LOCAL_DELEGATED_PROPERTY_REFERENCE 'testO: String' delegate='`testO$delegate`: String' getter='<get-testO>(): String' setter=null type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
LOCAL_DELEGATED_PROPERTY val testK: kotlin.String
VAR DELEGATE val `testK$delegate`: kotlin.String
CONST String type=kotlin.String value='K'
@@ -58,7 +59,7 @@ FILE /localDifferentReceivers.kt
CALL 'getValue(Any?, Any) on String: String' type=kotlin.String origin=null
$receiver: GET_VAR '`testK$delegate`: String' type=kotlin.String origin=null
receiver: CONST Null type=kotlin.Nothing? value='null'
p: CALLABLE_REFERENCE 'testK: String' type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
p: LOCAL_DELEGATED_PROPERTY_REFERENCE 'testK: String' delegate='`testK$delegate`: String' getter='<get-testK>(): String' setter=null type=kotlin.reflect.KProperty0<kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
VAR val testOK: kotlin.String
CALL 'plus(Any?): String' type=kotlin.String origin=PLUS
$this: CALL '<get-testO>(): String' type=kotlin.String origin=GET_LOCAL_PROPERTY