Files
kotlin-fork/compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.txt
T
Dmitry Petrov a3dadd9e3f Callable references now can have receivers and arguments
(for bound references implementation).
2016-10-18 09:08:53 +03:00

49 lines
2.5 KiB
Plaintext
Vendored

FILE /multipleImplicitReceivers.kt
CLASS OBJECT A
CONSTRUCTOR private constructor A()
BLOCK_BODY
INSTANCE_INITIALIZER_CALL classDescriptor=A
CLASS OBJECT B
CONSTRUCTOR private constructor B()
BLOCK_BODY
INSTANCE_INITIALIZER_CALL classDescriptor=B
CLASS INTERFACE IFoo
PROPERTY public open val A.foo: B
PROPERTY_GETTER public open fun A.<get-foo>(): B
BLOCK_BODY
RETURN type=kotlin.Nothing from=<get-foo>
GET_OBJECT B type=B
CLASS INTERFACE IInvoke
FUN public open operator fun B.invoke(): kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from=invoke
CONST Int type=kotlin.Int value='42'
FUN public fun test(/*0*/ fooImpl: IFoo, /*1*/ invokeImpl: IInvoke): kotlin.Unit
BLOCK_BODY
CALL .with type=kotlin.Int operator=null
receiver: GET_OBJECT A type=A
block: BLOCK type=A.() -> kotlin.Int operator=LAMBDA
FUN local final fun A.<anonymous>(): kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from=<anonymous>
CALL .with type=kotlin.Int operator=null
receiver: GET_VAR fooImpl type=IFoo operator=null
block: BLOCK type=IFoo.() -> kotlin.Int operator=LAMBDA
FUN local final fun IFoo.<anonymous>(): kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from=<anonymous>
CALL .with type=kotlin.Int operator=null
receiver: GET_VAR invokeImpl type=IInvoke operator=null
block: BLOCK type=IInvoke.() -> kotlin.Int operator=LAMBDA
FUN local final fun IInvoke.<anonymous>(): kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from=<anonymous>
CALL .invoke type=kotlin.Int operator=INVOKE
$this: $RECEIVER of: <anonymous> type=IInvoke
$receiver: CALL .<get-foo> type=B operator=GET_PROPERTY
$this: $RECEIVER of: <anonymous> type=IFoo
$receiver: $RECEIVER of: <anonymous> type=A
CALLABLE_REFERENCE <anonymous> type=IInvoke.() -> kotlin.Int operator=LAMBDA
CALLABLE_REFERENCE <anonymous> type=IFoo.() -> kotlin.Int operator=LAMBDA
CALLABLE_REFERENCE <anonymous> type=A.() -> kotlin.Int operator=LAMBDA