Delegated implementations for properties and extension properties.

This commit is contained in:
Dmitry Petrov
2016-09-02 09:47:32 +03:00
committed by Dmitry Petrov
parent d27f22ae0e
commit e42116bb6a
7 changed files with 169 additions and 20 deletions
@@ -0,0 +1,25 @@
FILE /delegatedImplementationWithExplicitOverride.kt
CLASS INTERFACE IFooBar
FUN public abstract fun foo(): kotlin.Unit
FUN public abstract fun bar(): kotlin.Unit
CLASS OBJECT FooBarImpl
CONSTRUCTOR private constructor FooBarImpl()
BLOCK_BODY
INSTANCE_INITIALIZER_CALL classDescriptor=FooBarImpl
FUN public open override /*1*/ fun foo(): kotlin.Unit
BLOCK_BODY
FUN public open override /*1*/ fun bar(): kotlin.Unit
BLOCK_BODY
CLASS CLASS C
CONSTRUCTOR public constructor C()
BLOCK_BODY
INSTANCE_INITIALIZER_CALL classDescriptor=C
DELEGATE val `C$IFooBar$delegate`: FooBarImpl
EXPRESSION_BODY
GET_OBJECT FooBarImpl type=FooBarImpl
FUN public open override /*1*/ /*delegation*/ fun foo(): kotlin.Unit
BLOCK_BODY
CALL .foo type=kotlin.Unit operator=null
$this: GET_VAR C$IFooBar$delegate type=FooBarImpl operator=null
FUN public open override /*1*/ fun bar(): kotlin.Unit
BLOCK_BODY