KT-57491 Prefix context receivers with $context_receiver_

This commit is contained in:
Pavel Mikhailovskii
2023-03-23 16:23:09 +00:00
committed by Space Team
parent f3592088fe
commit 0e6da53af8
82 changed files with 920 additions and 919 deletions
@@ -59,6 +59,7 @@ import static org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE;
import static org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC;
import static org.jetbrains.kotlin.diagnostics.Errors.*;
import static org.jetbrains.kotlin.lexer.KtTokens.INNER_KEYWORD;
import static org.jetbrains.kotlin.name.NameUtils.contextReceiverName;
import static org.jetbrains.kotlin.resolve.BindingContext.TYPE;
import static org.jetbrains.kotlin.resolve.ModifiersChecker.resolveModalityFromModifiers;
import static org.jetbrains.kotlin.resolve.ModifiersChecker.resolveVisibilityFromModifiers;
@@ -317,7 +318,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
c.getTypeResolver().resolveType(getScopeForClassHeaderResolution(), typeReference, c.getTrace(), true);
Name label = contextReceiver.labelNameAsName() != null
? contextReceiver.labelNameAsName()
: Name.identifier("_context_receiver_" + index);
: contextReceiverName(index);
return DescriptorFactory.createContextReceiverParameterForClass(
this,
kotlinType,
@@ -111,17 +111,17 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.<set-operationScore>' type=kotlin.Int origin=null
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.Int [operator]
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.Int [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:index index:1 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>'
WHEN type=kotlin.Int origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
@@ -132,16 +132,16 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Int type=kotlin.Int value=-1
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, other:<root>.MyContainer) returnType:kotlin.Unit [operator]
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, other:<root>.MyContainer) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.MyContainer
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
CALL 'public final fun <set-i> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.MyContainer' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.MyContainer declared in <root>.plusAssign' type=<root>.MyContainer origin=null
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
@@ -149,16 +149,16 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
$this: GET_VAR '<this>: <root>.MyContainer declared in <root>.plusAssign' type=<root>.MyContainer origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.MyContainer' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.MyContainer declared in <root>.plusAssign' type=<root>.MyContainer origin=null
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int) returnType:<root>.MyContainer [operator]
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int) returnType:<root>.MyContainer [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc (_context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc ($context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.MyContainer' type=<root>.MyContainer origin=null
i: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.MyContainer' type=kotlin.Int origin=GET_PROPERTY
@@ -177,20 +177,20 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.Int) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
CALL 'public final fun plusAssign (_context_receiver_0: kotlin.Int, other: <root>.MyContainer): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign ($context_receiver_0: kotlin.Int, other: <root>.MyContainer): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR 'var myContainer: <root>.MyContainer [var] declared in <root>.box' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.MyContainer' type=<root>.MyContainer origin=null
i: CALL 'public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>' type=kotlin.Int origin=null
i: CALL 'public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>' type=kotlin.Int origin=null
$receiver: BLOCK type=<root>.MyContainer origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:<root>.MyContainer [val]
GET_VAR 'var myContainer: <root>.MyContainer [var] declared in <root>.box' type=<root>.MyContainer origin=null
SET_VAR 'var myContainer: <root>.MyContainer [var] declared in <root>.box' type=kotlin.Unit origin=EQ
CALL 'public final fun inc (_context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>' type=<root>.MyContainer origin=null
CALL 'public final fun inc ($context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>' type=<root>.MyContainer origin=null
$receiver: GET_VAR 'val tmp_1: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_1: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
index: CONST Int type=kotlin.Int value=0
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
WHEN type=kotlin.String origin=IF
@@ -47,32 +47,32 @@ var operationScore: Int
get
set
operator fun MyContainer.get(_context_receiver_0: Int, index: Int): Int {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun MyContainer.get($context_receiver_0: Int, index: Int): Int {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return when {
EQEQ(arg0 = index, arg1 = 0) -> <this>.<get-i>()
else -> -1
}
}
operator fun MyContainer.plusAssign(_context_receiver_0: Int, other: MyContainer) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun MyContainer.plusAssign($context_receiver_0: Int, other: MyContainer) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
<this>.<set-i>(<set-?> = <this>.<get-i>().plus(other = other.<get-i>()))
}
operator fun MyContainer.inc(_context_receiver_0: Int): MyContainer {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun MyContainer.inc($context_receiver_0: Int): MyContainer {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return MyContainer(i = <this>.<get-i>().plus(other = 1))
}
fun box(): String {
var myContainer: MyContainer = MyContainer(i = 0)
with<Int, Unit>(receiver = 1, block = local fun Int.<anonymous>() {
myContainer.plusAssign(_context_receiver_0 = $this$with, other = MyContainer(i = { // BLOCK
myContainer.plusAssign($context_receiver_0 = $this$with, other = MyContainer(i = { // BLOCK
val <unary>: MyContainer = myContainer
myContainer = <unary>.inc(_context_receiver_0 = $this$with)
myContainer = <unary>.inc($context_receiver_0 = $this$with)
<unary>
}.get(_context_receiver_0 = $this$with, index = 0)))
}.get($context_receiver_0 = $this$with, index = 0)))
}
)
return when {
@@ -111,18 +111,18 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.<set-operationScore>' type=kotlin.Int origin=null
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.Int [operator]
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.Int [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:index index:1 type:kotlin.Int
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>'
WHEN type=kotlin.Int origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
@@ -133,17 +133,17 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Int type=kotlin.Int value=-1
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, other:<root>.MyContainer) returnType:kotlin.Unit [operator]
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, other:<root>.MyContainer) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.MyContainer
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
BLOCK type=kotlin.Unit origin=PLUSEQ
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:<root>.MyContainer [val]
GET_VAR '<this>: <root>.MyContainer declared in <root>.plusAssign' type=<root>.MyContainer origin=null
@@ -154,17 +154,17 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
$this: GET_VAR 'val tmp_1: <root>.MyContainer [val] declared in <root>.plusAssign' type=<root>.MyContainer origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.MyContainer' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.MyContainer declared in <root>.plusAssign' type=<root>.MyContainer origin=null
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int) returnType:<root>.MyContainer [operator]
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int) returnType:<root>.MyContainer [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc (_context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc ($context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.MyContainer' type=<root>.MyContainer origin=null
i: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.MyContainer' type=kotlin.Int origin=GET_PROPERTY
@@ -183,20 +183,20 @@ FILE fqName:<root> fileName:/arrayAccessCompositeOperators.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.Int) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
CALL 'public final fun plusAssign (_context_receiver_0: kotlin.Int, other: <root>.MyContainer): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plusAssign ($context_receiver_0: kotlin.Int, other: <root>.MyContainer): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=PLUSEQ
$receiver: GET_VAR 'var myContainer: <root>.MyContainer [var] declared in <root>.box' type=<root>.MyContainer origin=PLUSEQ
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.MyContainer' type=<root>.MyContainer origin=null
i: CALL 'public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>' type=kotlin.Int origin=GET_ARRAY_ELEMENT
i: CALL 'public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.Int [operator] declared in <root>' type=kotlin.Int origin=GET_ARRAY_ELEMENT
$receiver: BLOCK type=<root>.MyContainer origin=POSTFIX_INCR
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:<root>.MyContainer [val]
GET_VAR 'var myContainer: <root>.MyContainer [var] declared in <root>.box' type=<root>.MyContainer origin=POSTFIX_INCR
SET_VAR 'var myContainer: <root>.MyContainer [var] declared in <root>.box' type=kotlin.Unit origin=POSTFIX_INCR
CALL 'public final fun inc (_context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>' type=<root>.MyContainer origin=POSTFIX_INCR
CALL 'public final fun inc ($context_receiver_0: kotlin.Int): <root>.MyContainer [operator] declared in <root>' type=<root>.MyContainer origin=POSTFIX_INCR
$receiver: GET_VAR 'val tmp_2: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_2: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
index: CONST Int type=kotlin.Int value=0
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
WHEN type=kotlin.String origin=IF
@@ -47,9 +47,9 @@ var operationScore: Int
get
set
operator fun MyContainer.get(_context_receiver_0: Int, index: Int): Int {
operator fun MyContainer.get($context_receiver_0: Int, index: Int): Int {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return when {
EQEQ(arg0 = index, arg1 = 0) -> <this>.<get-i>()
@@ -57,9 +57,9 @@ operator fun MyContainer.get(_context_receiver_0: Int, index: Int): Int {
}
}
operator fun MyContainer.plusAssign(_context_receiver_0: Int, other: MyContainer) {
operator fun MyContainer.plusAssign($context_receiver_0: Int, other: MyContainer) {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
{ // BLOCK
val tmp0_this: MyContainer = <this>
@@ -67,9 +67,9 @@ operator fun MyContainer.plusAssign(_context_receiver_0: Int, other: MyContainer
}
}
operator fun MyContainer.inc(_context_receiver_0: Int): MyContainer {
operator fun MyContainer.inc($context_receiver_0: Int): MyContainer {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return MyContainer(i = <this>.<get-i>().plus(other = 1))
}
@@ -77,11 +77,11 @@ operator fun MyContainer.inc(_context_receiver_0: Int): MyContainer {
fun box(): String {
var myContainer: MyContainer = MyContainer(i = 0)
with<Int, Unit>(receiver = 1, block = local fun Int.<anonymous>() {
myContainer.plusAssign(_context_receiver_0 = $this$with, other = MyContainer(i = { // BLOCK
myContainer.plusAssign($context_receiver_0 = $this$with, other = MyContainer(i = { // BLOCK
val tmp0: MyContainer = myContainer
myContainer = tmp0.inc(_context_receiver_0 = $this$with)
myContainer = tmp0.inc($context_receiver_0 = $this$with)
tmp0
}.get(_context_receiver_0 = $this$with, index = 0)))
}.get($context_receiver_0 = $this$with, index = 0)))
}
)
return when {
@@ -96,13 +96,13 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:s type:kotlin.String visibility:private' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.MyContainer declared in <root>.MyContainer.toString' type=<root>.MyContainer origin=null
CONST String type=kotlin.String value=")"
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.String? [operator]
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.String? [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:index index:1 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>'
WHEN type=kotlin.String? origin=IF
BRANCH
if: WHEN type=kotlin.Boolean origin=ANDAND
@@ -111,7 +111,7 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
arg0: GET_VAR 'index: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=0
then: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
arg0: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=42
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -121,10 +121,10 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Null type=kotlin.Nothing? value=null
FUN name:set visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, index:kotlin.Int, value:kotlin.String) returnType:kotlin.Unit [operator]
FUN name:set visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, index:kotlin.Int, value:kotlin.String) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:index index:1 type:kotlin.Int
VALUE_PARAMETER name:value index:2 type:kotlin.String
BLOCK_BODY
@@ -141,9 +141,9 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.set' type=kotlin.Int origin=null
arg0: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.set' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=42
then: RETURN type=kotlin.Nothing from='public final fun set (_context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>'
then: RETURN type=kotlin.Nothing from='public final fun set ($context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
CALL 'public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.MyContainer' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.MyContainer declared in <root>.set' type=<root>.MyContainer origin=null
@@ -162,17 +162,17 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
VAR name:myContainer type:<root>.MyContainer [val]
CONSTRUCTOR_CALL 'public constructor <init> (s: kotlin.String) [primary] declared in <root>.MyContainer' type=<root>.MyContainer origin=null
s: CONST String type=kotlin.String value="fail"
CALL 'public final fun set (_context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun set ($context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR 'val myContainer: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
index: CONST Int type=kotlin.Int value=0
value: CONST String type=kotlin.String value="OK"
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
BLOCK type=kotlin.String origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.String? [val]
CALL 'public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>' type=kotlin.String? origin=null
CALL 'public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>' type=kotlin.String? origin=null
$receiver: GET_VAR 'val myContainer: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
index: CONST Int type=kotlin.Int value=0
WHEN type=kotlin.String origin=ELVIS
BRANCH
@@ -42,21 +42,21 @@ data class MyContainer {
}
operator fun MyContainer.get(_context_receiver_0: Int, index: Int): String? {
operator fun MyContainer.get($context_receiver_0: Int, index: Int): String? {
return when {
when {
EQEQ(arg0 = index, arg1 = 0) -> EQEQ(arg0 = _context_receiver_0, arg1 = 42)
EQEQ(arg0 = index, arg1 = 0) -> EQEQ(arg0 = $context_receiver_0, arg1 = 42)
else -> false
} -> <this>.<get-s>()
else -> null
}
}
operator fun MyContainer.set(_context_receiver_0: Int, index: Int, value: String) {
operator fun MyContainer.set($context_receiver_0: Int, index: Int, value: String) {
when {
when {
EQEQ(arg0 = index, arg1 = 0).not() -> true
else -> EQEQ(arg0 = _context_receiver_0, arg1 = 42).not()
else -> EQEQ(arg0 = $context_receiver_0, arg1 = 42).not()
} -> return Unit
}
<this>.<set-s>(<set-?> = value)
@@ -65,9 +65,9 @@ operator fun MyContainer.set(_context_receiver_0: Int, index: Int, value: String
fun box(): String {
return with<Int, String>(receiver = 42, block = local fun Int.<anonymous>(): String {
val myContainer: MyContainer = MyContainer(s = "fail")
myContainer.set(_context_receiver_0 = $this$with, index = 0, value = "OK")
myContainer.set($context_receiver_0 = $this$with, index = 0, value = "OK")
return { // BLOCK
val <elvis>: String? = myContainer.get(_context_receiver_0 = $this$with, index = 0)
val <elvis>: String? = myContainer.get($context_receiver_0 = $this$with, index = 0)
when {
EQEQ(arg0 = <elvis>, arg1 = null) -> "fail"
else -> <elvis>
@@ -96,13 +96,13 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
CONST Boolean type=kotlin.Boolean value=false
RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.MyContainer'
CONST Boolean type=kotlin.Boolean value=true
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.String? [operator]
FUN name:get visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, index:kotlin.Int) returnType:kotlin.String? [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:index index:1 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>'
WHEN type=kotlin.String? origin=IF
BRANCH
if: WHEN type=kotlin.Boolean origin=ANDAND
@@ -111,7 +111,7 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
arg0: GET_VAR 'index: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=0
then: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
arg0: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.get' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=42
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -121,10 +121,10 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Null type=kotlin.Nothing? value=null
FUN name:set visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, _context_receiver_0:kotlin.Int, index:kotlin.Int, value:kotlin.String) returnType:kotlin.Unit [operator]
FUN name:set visibility:public modality:FINAL <> ($receiver:<root>.MyContainer, $context_receiver_0:kotlin.Int, index:kotlin.Int, value:kotlin.String) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.MyContainer
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:index index:1 type:kotlin.Int
VALUE_PARAMETER name:value index:2 type:kotlin.String
BLOCK_BODY
@@ -141,9 +141,9 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.set' type=kotlin.Int origin=null
arg0: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.set' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=42
then: RETURN type=kotlin.Nothing from='public final fun set (_context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>'
then: RETURN type=kotlin.Nothing from='public final fun set ($context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
CALL 'public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.MyContainer' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.MyContainer declared in <root>.set' type=<root>.MyContainer origin=null
@@ -162,17 +162,17 @@ FILE fqName:<root> fileName:/arrayAccessOperators.kt
VAR name:myContainer type:<root>.MyContainer [val]
CONSTRUCTOR_CALL 'public constructor <init> (s: kotlin.String) [primary] declared in <root>.MyContainer' type=<root>.MyContainer origin=null
s: CONST String type=kotlin.String value="fail"
CALL 'public final fun set (_context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=EQ
CALL 'public final fun set ($context_receiver_0: kotlin.Int, index: kotlin.Int, value: kotlin.String): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=EQ
$receiver: GET_VAR 'val myContainer: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
index: CONST Int type=kotlin.Int value=0
value: CONST String type=kotlin.String value="OK"
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
BLOCK type=kotlin.String origin=ELVIS
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.String? [val]
CALL 'public final fun get (_context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>' type=kotlin.String? origin=GET_ARRAY_ELEMENT
CALL 'public final fun get ($context_receiver_0: kotlin.Int, index: kotlin.Int): kotlin.String? [operator] declared in <root>' type=kotlin.String? origin=GET_ARRAY_ELEMENT
$receiver: GET_VAR 'val myContainer: <root>.MyContainer [val] declared in <root>.box.<anonymous>' type=<root>.MyContainer origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
index: CONST Int type=kotlin.Int value=0
WHEN type=kotlin.String origin=null
BRANCH
@@ -42,21 +42,21 @@ data class MyContainer {
}
operator fun MyContainer.get(_context_receiver_0: Int, index: Int): String? {
operator fun MyContainer.get($context_receiver_0: Int, index: Int): String? {
return when {
when {
EQEQ(arg0 = index, arg1 = 0) -> EQEQ(arg0 = _context_receiver_0, arg1 = 42)
EQEQ(arg0 = index, arg1 = 0) -> EQEQ(arg0 = $context_receiver_0, arg1 = 42)
else -> false
} -> <this>.<get-s>()
else -> null
}
}
operator fun MyContainer.set(_context_receiver_0: Int, index: Int, value: String) {
operator fun MyContainer.set($context_receiver_0: Int, index: Int, value: String) {
when {
when {
EQEQ(arg0 = index, arg1 = 0).not() -> true
else -> EQEQ(arg0 = _context_receiver_0, arg1 = 42).not()
else -> EQEQ(arg0 = $context_receiver_0, arg1 = 42).not()
} -> return Unit
}
<this>.<set-s>(<set-?> = value)
@@ -65,9 +65,9 @@ operator fun MyContainer.set(_context_receiver_0: Int, index: Int, value: String
fun box(): String {
return with<Int, String>(receiver = 42, block = local fun Int.<anonymous>(): String {
val myContainer: MyContainer = MyContainer(s = "fail")
myContainer.set(_context_receiver_0 = $this$with, index = 0, value = "OK")
myContainer.set($context_receiver_0 = $this$with, index = 0, value = "OK")
return { // BLOCK
val tmp0_elvis_lhs: String? = myContainer.get(_context_receiver_0 = $this$with, index = 0)
val tmp0_elvis_lhs: String? = myContainer.get($context_receiver_0 = $this$with, index = 0)
when {
EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> "fail"
else -> tmp0_elvis_lhs
@@ -32,14 +32,14 @@ FILE fqName:<root> fileName:/class.kt
CLASS CLASS name:Inner modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Inner
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.Outer visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:<root>.Outer, arg:kotlin.Any) returnType:<root>.Inner [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Outer
CONSTRUCTOR visibility:public <> ($context_receiver_0:<root>.Outer, arg:kotlin.Any) returnType:<root>.Inner [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Outer
VALUE_PARAMETER name:arg index:1 type:kotlin.Any
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.Outer visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.Inner declared in <root>.Inner' type=<root>.Inner origin=null
value: GET_VAR '_context_receiver_0: <root>.Outer declared in <root>.Inner.<init>' type=<root>.Outer origin=null
value: GET_VAR '$context_receiver_0: <root>.Outer declared in <root>.Inner.<init>' type=<root>.Outer origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN name:bar visibility:public modality:FINAL <> ($this:<root>.Inner) returnType:kotlin.Int
$this: VALUE_PARAMETER name:<this> type:<root>.Inner
@@ -74,6 +74,6 @@ FILE fqName:<root> fileName:/class.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.Outer
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): <root>.Inner declared in <root>.f'
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: <root>.Outer, arg: kotlin.Any) [primary] declared in <root>.Inner' type=<root>.Inner origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Outer declared in <root>.f.<anonymous>' type=<root>.Outer origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: <root>.Outer, arg: kotlin.Any) [primary] declared in <root>.Inner' type=<root>.Inner origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Outer declared in <root>.f.<anonymous>' type=<root>.Outer origin=null
arg: CONST Int type=kotlin.Int value=3
@@ -13,9 +13,9 @@ class Outer {
class Inner {
private /* final field */ val contextReceiverField0: Outer
constructor(_context_receiver_0: Outer, arg: Any) /* primary */ {
constructor($context_receiver_0: Outer, arg: Any) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -28,7 +28,7 @@ class Inner {
fun f(outer: Outer) {
with<Outer, Inner>(receiver = outer, block = local fun Outer.<anonymous>(): Inner {
return Inner(_context_receiver_0 = $this$with, arg = 3)
return Inner($context_receiver_0 = $this$with, arg = 3)
}
) /*~> Unit */
}
@@ -111,33 +111,33 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.<set-operationScore>' type=kotlin.Int origin=null
FUN name:plus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:plus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.plus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun plus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.plus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun plus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.plus' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.plus' type=<root>.Result origin=null
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
CALL 'public final fun <set-i> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.Result' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.Result declared in <root>.plusAssign' type=<root>.Result origin=null
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
@@ -145,33 +145,33 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
$this: GET_VAR '<this>: <root>.Result declared in <root>.plusAssign' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.plusAssign' type=<root>.Result origin=null
FUN name:minus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:minus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.minus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun minus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.minus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun minus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun minus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MINUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.minus' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.minus' type=<root>.Result origin=null
FUN name:minusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:minusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.minusAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.minusAssign' type=kotlin.Int origin=null
CALL 'public final fun <set-i> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.Result' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.Result declared in <root>.minusAssign' type=<root>.Result origin=null
<set-?>: CALL 'public final fun minus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
@@ -179,33 +179,33 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
$this: GET_VAR '<this>: <root>.Result declared in <root>.minusAssign' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.minusAssign' type=<root>.Result origin=null
FUN name:times visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:times visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.times' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun times (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.times' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun times ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun times (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MUL
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.times' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.times' type=<root>.Result origin=null
FUN name:timesAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:timesAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.timesAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.timesAssign' type=kotlin.Int origin=null
CALL 'public final fun <set-i> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.Result' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.Result declared in <root>.timesAssign' type=<root>.Result origin=null
<set-?>: CALL 'public final fun times (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
@@ -213,33 +213,33 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
$this: GET_VAR '<this>: <root>.Result declared in <root>.timesAssign' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.timesAssign' type=<root>.Result origin=null
FUN name:div visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:div visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.div' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun div (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.div' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun div ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun div (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=DIV
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.div' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.div' type=<root>.Result origin=null
FUN name:divAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:divAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.divAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.divAssign' type=kotlin.Int origin=null
CALL 'public final fun <set-i> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>.Result' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.Result declared in <root>.divAssign' type=<root>.Result origin=null
<set-?>: CALL 'public final fun div (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
@@ -260,40 +260,40 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.Int) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
CALL 'public final fun plusAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun plusAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun plus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=PLUS
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun plus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=PLUS
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
CALL 'public final fun minusAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun minusAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun minus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MINUS
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun minus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MINUS
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=0
CALL 'public final fun timesAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun timesAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun times (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MUL
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun times ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MUL
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=2
CALL 'public final fun divAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun divAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun div (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=DIV
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun div ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=DIV
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=4
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=2
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
@@ -47,53 +47,53 @@ var operationScore: Int
get
set
operator fun Result.plus(_context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.plus($context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().plus(other = other.<get-i>()))
}
operator fun Result.plusAssign(_context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.plusAssign($context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
<this>.<set-i>(<set-?> = <this>.<get-i>().plus(other = other.<get-i>()))
}
operator fun Result.minus(_context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.minus($context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().minus(other = other.<get-i>()))
}
operator fun Result.minusAssign(_context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.minusAssign($context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
<this>.<set-i>(<set-?> = <this>.<get-i>().minus(other = other.<get-i>()))
}
operator fun Result.times(_context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.times($context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().times(other = other.<get-i>()))
}
operator fun Result.timesAssign(_context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.timesAssign($context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
<this>.<set-i>(<set-?> = <this>.<get-i>().times(other = other.<get-i>()))
}
operator fun Result.div(_context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.div($context_receiver_0: Int, other: Result): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().div(other = other.<get-i>()))
}
operator fun Result.divAssign(_context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.divAssign($context_receiver_0: Int, other: Result) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
<this>.<set-i>(<set-?> = <this>.<get-i>().div(other = other.<get-i>()))
}
fun box(): String {
val result: Result = Result(i = 0)
with<Int, Unit>(receiver = 1, block = local fun Int.<anonymous>() {
result.plusAssign(_context_receiver_0 = $this$with, other = Result(i = 1).plus(_context_receiver_0 = $this$with, other = Result(i = 1)))
result.minusAssign(_context_receiver_0 = $this$with, other = Result(i = 1).minus(_context_receiver_0 = $this$with, other = Result(i = 0)))
result.timesAssign(_context_receiver_0 = $this$with, other = Result(i = 1).times(_context_receiver_0 = $this$with, other = Result(i = 2)))
result.divAssign(_context_receiver_0 = $this$with, other = Result(i = 4).div(_context_receiver_0 = $this$with, other = Result(i = 2)))
result.plusAssign($context_receiver_0 = $this$with, other = Result(i = 1).plus($context_receiver_0 = $this$with, other = Result(i = 1)))
result.minusAssign($context_receiver_0 = $this$with, other = Result(i = 1).minus($context_receiver_0 = $this$with, other = Result(i = 0)))
result.timesAssign($context_receiver_0 = $this$with, other = Result(i = 1).times($context_receiver_0 = $this$with, other = Result(i = 2)))
result.divAssign($context_receiver_0 = $this$with, other = Result(i = 4).div($context_receiver_0 = $this$with, other = Result(i = 2)))
}
)
return when {
@@ -111,35 +111,35 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.<set-operationScore>' type=kotlin.Int origin=null
FUN name:plus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:plus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.plus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun plus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.plus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun plus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.plus' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.plus' type=<root>.Result origin=null
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.plusAssign' type=kotlin.Int origin=null
BLOCK type=kotlin.Unit origin=PLUSEQ
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:<root>.Result [val]
GET_VAR '<this>: <root>.Result declared in <root>.plusAssign' type=<root>.Result origin=null
@@ -150,35 +150,35 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
$this: GET_VAR 'val tmp_1: <root>.Result [val] declared in <root>.plusAssign' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.plusAssign' type=<root>.Result origin=null
FUN name:minus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:minus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.minus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun minus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.minus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun minus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun minus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MINUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.minus' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.minus' type=<root>.Result origin=null
FUN name:minusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:minusAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.minusAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.minusAssign' type=kotlin.Int origin=null
BLOCK type=kotlin.Unit origin=MINUSEQ
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:<root>.Result [val]
GET_VAR '<this>: <root>.Result declared in <root>.minusAssign' type=<root>.Result origin=null
@@ -189,35 +189,35 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
$this: GET_VAR 'val tmp_2: <root>.Result [val] declared in <root>.minusAssign' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.minusAssign' type=<root>.Result origin=null
FUN name:times visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:times visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.times' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun times (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.times' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun times ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun times (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MUL
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.times' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.times' type=<root>.Result origin=null
FUN name:timesAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:timesAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.timesAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.timesAssign' type=kotlin.Int origin=null
BLOCK type=kotlin.Unit origin=MULTEQ
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:<root>.Result [val]
GET_VAR '<this>: <root>.Result declared in <root>.timesAssign' type=<root>.Result origin=null
@@ -228,35 +228,35 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
$this: GET_VAR 'val tmp_3: <root>.Result [val] declared in <root>.timesAssign' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.timesAssign' type=<root>.Result origin=null
FUN name:div visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
FUN name:div visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.div' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun div (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.div' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun div ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun div (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=DIV
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.div' type=<root>.Result origin=null
other: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR 'other: <root>.Result declared in <root>.div' type=<root>.Result origin=null
FUN name:divAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
FUN name:divAssign visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int, other:<root>.Result) returnType:kotlin.Unit [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:other index:1 type:<root>.Result
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.divAssign' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.divAssign' type=kotlin.Int origin=null
BLOCK type=kotlin.Unit origin=DIVEQ
VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:<root>.Result [val]
GET_VAR '<this>: <root>.Result declared in <root>.divAssign' type=<root>.Result origin=null
@@ -280,40 +280,40 @@ FILE fqName:<root> fileName:/compoundAssignmentOperators.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.Int) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
CALL 'public final fun plusAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plusAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=PLUSEQ
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=PLUSEQ
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun plus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=PLUS
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun plus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=PLUS
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
CALL 'public final fun minusAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=MINUSEQ
CALL 'public final fun minusAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=MINUSEQ
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=MINUSEQ
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun minus (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MINUS
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun minus ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MINUS
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=0
CALL 'public final fun timesAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=MULTEQ
CALL 'public final fun timesAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=MULTEQ
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=MULTEQ
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun times (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MUL
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun times ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=MUL
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=2
CALL 'public final fun divAssign (_context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=DIVEQ
CALL 'public final fun divAssign ($context_receiver_0: kotlin.Int, other: <root>.Result): kotlin.Unit [operator] declared in <root>' type=kotlin.Unit origin=DIVEQ
$receiver: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=DIVEQ
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun div (_context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=DIV
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun div ($context_receiver_0: kotlin.Int, other: <root>.Result): <root>.Result [operator] declared in <root>' type=<root>.Result origin=DIV
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=4
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CONST Int type=kotlin.Int value=2
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
@@ -47,16 +47,16 @@ var operationScore: Int
get
set
operator fun Result.plus(_context_receiver_0: Int, other: Result): Result {
operator fun Result.plus($context_receiver_0: Int, other: Result): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = <this>.<get-i>().plus(other = other.<get-i>()))
}
operator fun Result.plusAssign(_context_receiver_0: Int, other: Result) {
operator fun Result.plusAssign($context_receiver_0: Int, other: Result) {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
{ // BLOCK
val tmp0_this: Result = <this>
@@ -64,16 +64,16 @@ operator fun Result.plusAssign(_context_receiver_0: Int, other: Result) {
}
}
operator fun Result.minus(_context_receiver_0: Int, other: Result): Result {
operator fun Result.minus($context_receiver_0: Int, other: Result): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = <this>.<get-i>().minus(other = other.<get-i>()))
}
operator fun Result.minusAssign(_context_receiver_0: Int, other: Result) {
operator fun Result.minusAssign($context_receiver_0: Int, other: Result) {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
{ // BLOCK
val tmp0_this: Result = <this>
@@ -81,16 +81,16 @@ operator fun Result.minusAssign(_context_receiver_0: Int, other: Result) {
}
}
operator fun Result.times(_context_receiver_0: Int, other: Result): Result {
operator fun Result.times($context_receiver_0: Int, other: Result): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = <this>.<get-i>().times(other = other.<get-i>()))
}
operator fun Result.timesAssign(_context_receiver_0: Int, other: Result) {
operator fun Result.timesAssign($context_receiver_0: Int, other: Result) {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
{ // BLOCK
val tmp0_this: Result = <this>
@@ -98,16 +98,16 @@ operator fun Result.timesAssign(_context_receiver_0: Int, other: Result) {
}
}
operator fun Result.div(_context_receiver_0: Int, other: Result): Result {
operator fun Result.div($context_receiver_0: Int, other: Result): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = <this>.<get-i>().div(other = other.<get-i>()))
}
operator fun Result.divAssign(_context_receiver_0: Int, other: Result) {
operator fun Result.divAssign($context_receiver_0: Int, other: Result) {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
{ // BLOCK
val tmp0_this: Result = <this>
@@ -118,10 +118,10 @@ operator fun Result.divAssign(_context_receiver_0: Int, other: Result) {
fun box(): String {
val result: Result = Result(i = 0)
with<Int, Unit>(receiver = 1, block = local fun Int.<anonymous>() {
result.plusAssign(_context_receiver_0 = $this$with, other = Result(i = 1).plus(_context_receiver_0 = $this$with, other = Result(i = 1)))
result.minusAssign(_context_receiver_0 = $this$with, other = Result(i = 1).minus(_context_receiver_0 = $this$with, other = Result(i = 0)))
result.timesAssign(_context_receiver_0 = $this$with, other = Result(i = 1).times(_context_receiver_0 = $this$with, other = Result(i = 2)))
result.divAssign(_context_receiver_0 = $this$with, other = Result(i = 4).div(_context_receiver_0 = $this$with, other = Result(i = 2)))
result.plusAssign($context_receiver_0 = $this$with, other = Result(i = 1).plus($context_receiver_0 = $this$with, other = Result(i = 1)))
result.minusAssign($context_receiver_0 = $this$with, other = Result(i = 1).minus($context_receiver_0 = $this$with, other = Result(i = 0)))
result.timesAssign($context_receiver_0 = $this$with, other = Result(i = 1).times($context_receiver_0 = $this$with, other = Result(i = 2)))
result.divAssign($context_receiver_0 = $this$with, other = Result(i = 4).div($context_receiver_0 = $this$with, other = Result(i = 2)))
}
)
return when {
@@ -26,13 +26,13 @@ FILE fqName:<root> fileName:/contextReceiverMethod.kt
CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.Context visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:<root>.Context) returnType:<root>.Test [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
CONSTRUCTOR visibility:public <> ($context_receiver_0:<root>.Context) returnType:<root>.Test [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.Context visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test' type=<root>.Test origin=null
value: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.Test.<init>' type=<root>.Context origin=null
value: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.Test.<init>' type=<root>.Context origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN name:foo visibility:public modality:FINAL <> ($this:<root>.Test) returnType:kotlin.Int
$this: VALUE_PARAMETER name:<this> type:<root>.Test
@@ -13,9 +13,9 @@ class Context {
class Test {
private /* final field */ val contextReceiverField0: Context
constructor(_context_receiver_0: Context) /* primary */ {
constructor($context_receiver_0: Context) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -23,44 +23,44 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:testInline visibility:public modality:FINAL <> (_context_receiver_0:<root>.Context) returnType:kotlin.Int [inline]
FUN name:testInline visibility:public modality:FINAL <> ($context_receiver_0:<root>.Context) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInline (_context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInline ($context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>'
CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInline' type=<root>.Context origin=null
FUN name:testInlineWithArg visibility:public modality:FINAL <> (_context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInline' type=<root>.Context origin=null
FUN name:testInlineWithArg visibility:public modality:FINAL <> ($context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:i index:1 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: GET_VAR 'i: kotlin.Int declared in <root>.testInlineWithArg' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndArg visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndArg visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:i index:1 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: GET_VAR '<this>: kotlin.Int declared in <root>.testInlineWithExtensionAndArg' type=kotlin.Int origin=null
other: GET_VAR 'i: kotlin.Int declared in <root>.testInlineWithExtensionAndArg' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndMultipleArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.Context, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndMultipleArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.Context, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:i1 index:1 type:kotlin.Int
VALUE_PARAMETER name:i2 index:2 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleArgs (_context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleArgs ($context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
@@ -68,7 +68,7 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
other: GET_VAR 'i1: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleArgs' type=kotlin.Int origin=null
other: GET_VAR 'i2: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleArgs' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleArgs' type=<root>.Context origin=null
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleArgs' type=<root>.Context origin=null
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> (a:kotlin.Any?) returnType:<root>.A [primary]
@@ -100,11 +100,11 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:testInlineWithExtensionAndMultipleContextsAndArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.Context, _context_receiver_1:<root>.A, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
FUN name:testInlineWithExtensionAndMultipleContextsAndArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.Context, $context_receiver_1:<root>.A, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 2
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:_context_receiver_1 index:1 type:<root>.A
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_1 index:1 type:<root>.A
VALUE_PARAMETER name:i1 index:2 type:kotlin.Int
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
@@ -112,7 +112,7 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
EXPRESSION_BODY
CONST Int type=kotlin.Int value=2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleContextsAndArgs (_context_receiver_0: <root>.Context, _context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
@@ -121,12 +121,12 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
other: GET_VAR 'i1: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=kotlin.Int origin=null
other: GET_VAR 'i2: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.Context origin=null
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.Context origin=null
other: WHEN type=kotlin.Int origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: CALL 'public final fun <get-a> (): kotlin.Any? declared in <root>.A' type=kotlin.Any? origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_1: <root>.A declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.A origin=null
$this: GET_VAR '$context_receiver_1: <root>.A declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.A origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Int type=kotlin.Int value=0
BRANCH
@@ -148,27 +148,27 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun testInline (_context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
other: CALL 'public final fun testInline ($context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
other: CALL 'public final fun testInlineWithArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
i: CONST Int type=kotlin.Int value=1
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
i: CONST Int type=kotlin.Int value=1
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleArgs (_context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleArgs ($context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
i1: CONST Int type=kotlin.Int value=1
i2: CONST Int type=kotlin.Int value=2
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
@@ -183,19 +183,19 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs (_context_receiver_0: <root>.Context, _context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
_context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
i1: CONST Int type=kotlin.Int value=1
i2: CONST Int type=kotlin.Int value=2
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs (_context_receiver_0: <root>.Context, _context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
_context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
WHEN type=kotlin.String origin=IF
BRANCH
@@ -11,20 +11,20 @@ class Context {
}
inline fun testInline(_context_receiver_0: Context): Int {
return _context_receiver_0.c()
inline fun testInline($context_receiver_0: Context): Int {
return $context_receiver_0.c()
}
inline fun testInlineWithArg(_context_receiver_0: Context, i: Int): Int {
return i.plus(other = _context_receiver_0.c())
inline fun testInlineWithArg($context_receiver_0: Context, i: Int): Int {
return i.plus(other = $context_receiver_0.c())
}
inline fun Int.testInlineWithExtensionAndArg(_context_receiver_0: Context, i: Int): Int {
return <this>.plus(other = i).plus(other = _context_receiver_0.c())
inline fun Int.testInlineWithExtensionAndArg($context_receiver_0: Context, i: Int): Int {
return <this>.plus(other = i).plus(other = $context_receiver_0.c())
}
inline fun Int.testInlineWithExtensionAndMultipleArgs(_context_receiver_0: Context, i1: Int, i2: Int): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = _context_receiver_0.c())
inline fun Int.testInlineWithExtensionAndMultipleArgs($context_receiver_0: Context, i1: Int, i2: Int): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = $context_receiver_0.c())
}
class A {
@@ -40,9 +40,9 @@ class A {
}
inline fun Int.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiver_0: Context, _context_receiver_1: A, i1: Int = 1, i2: Int = 2): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = _context_receiver_0.c()).plus(other = when {
EQEQ(arg0 = _context_receiver_1.<get-a>(), arg1 = null) -> 0
inline fun Int.testInlineWithExtensionAndMultipleContextsAndArgs($context_receiver_0: Context, $context_receiver_1: A, i1: Int = 1, i2: Int = 2): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = $context_receiver_0.c()).plus(other = when {
EQEQ(arg0 = $context_receiver_1.<get-a>(), arg1 = null) -> 0
else -> 1
})
}
@@ -50,13 +50,13 @@ inline fun Int.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiv
fun box(): String {
return with<Context, Nothing>(receiver = Context(), block = local fun Context.<anonymous>(): Nothing {
var result: Int = 0
result = result.plus(other = testInline(_context_receiver_0 = $this$with))
result = result.plus(other = testInlineWithArg(_context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndArg(_context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleArgs(_context_receiver_0 = $this$with, i1 = 1, i2 = 2))
result = result.plus(other = testInline($context_receiver_0 = $this$with))
result = result.plus(other = testInlineWithArg($context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndArg($context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleArgs($context_receiver_0 = $this$with, i1 = 1, i2 = 2))
with<A, Unit>(receiver = A(a = 1), block = local fun A.<anonymous>() {
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiver_0 = $this$with, _context_receiver_1 = $this$with, i1 = 1, i2 = 2))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiver_0 = $this$with, _context_receiver_1 = $this$with))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs($context_receiver_0 = $this$with, $context_receiver_1 = $this$with, i1 = 1, i2 = 2))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs($context_receiver_0 = $this$with, $context_receiver_1 = $this$with))
}
)
return when {
@@ -23,44 +23,44 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:testInline visibility:public modality:FINAL <> (_context_receiver_0:<root>.Context) returnType:kotlin.Int [inline]
FUN name:testInline visibility:public modality:FINAL <> ($context_receiver_0:<root>.Context) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInline (_context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInline ($context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>'
CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInline' type=<root>.Context origin=null
FUN name:testInlineWithArg visibility:public modality:FINAL <> (_context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInline' type=<root>.Context origin=null
FUN name:testInlineWithArg visibility:public modality:FINAL <> ($context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:i index:1 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: GET_VAR 'i: kotlin.Int declared in <root>.testInlineWithArg' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndArg visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndArg visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.Context, i:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:i index:1 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: GET_VAR '<this>: kotlin.Int declared in <root>.testInlineWithExtensionAndArg' type=kotlin.Int origin=null
other: GET_VAR 'i: kotlin.Int declared in <root>.testInlineWithExtensionAndArg' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndMultipleArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.Context, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndArg' type=<root>.Context origin=null
FUN name:testInlineWithExtensionAndMultipleArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.Context, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:i1 index:1 type:kotlin.Int
VALUE_PARAMETER name:i2 index:2 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleArgs (_context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleArgs ($context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
@@ -68,7 +68,7 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
other: GET_VAR 'i1: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleArgs' type=kotlin.Int origin=null
other: GET_VAR 'i2: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleArgs' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleArgs' type=<root>.Context origin=null
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleArgs' type=<root>.Context origin=null
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> (a:kotlin.Any?) returnType:<root>.A [primary]
@@ -100,11 +100,11 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:testInlineWithExtensionAndMultipleContextsAndArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.Context, _context_receiver_1:<root>.A, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
FUN name:testInlineWithExtensionAndMultipleContextsAndArgs visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.Context, $context_receiver_1:<root>.A, i1:kotlin.Int, i2:kotlin.Int) returnType:kotlin.Int [inline]
contextReceiverParametersCount: 2
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:_context_receiver_1 index:1 type:<root>.A
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_1 index:1 type:<root>.A
VALUE_PARAMETER name:i1 index:2 type:kotlin.Int
EXPRESSION_BODY
CONST Int type=kotlin.Int value=1
@@ -112,7 +112,7 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
EXPRESSION_BODY
CONST Int type=kotlin.Int value=2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleContextsAndArgs (_context_receiver_0: <root>.Context, _context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
@@ -121,12 +121,12 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
other: GET_VAR 'i1: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=kotlin.Int origin=null
other: GET_VAR 'i2: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=kotlin.Int origin=null
other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.Context origin=null
$this: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.Context origin=null
other: WHEN type=kotlin.Int origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: CALL 'public final fun <get-a> (): kotlin.Any? declared in <root>.A' type=kotlin.Any? origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_1: <root>.A declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.A origin=null
$this: GET_VAR '$context_receiver_1: <root>.A declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.A origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Int type=kotlin.Int value=0
BRANCH
@@ -148,27 +148,27 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
other: CALL 'public final fun testInline (_context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
other: CALL 'public final fun testInline ($context_receiver_0: <root>.Context): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
other: CALL 'public final fun testInlineWithArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
other: CALL 'public final fun testInlineWithArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
i: CONST Int type=kotlin.Int value=1
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
other: CALL 'public final fun testInlineWithExtensionAndArg (_context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
i: CONST Int type=kotlin.Int value=1
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
other: CALL 'public final fun testInlineWithExtensionAndMultipleArgs (_context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleArgs ($context_receiver_0: <root>.Context, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
i1: CONST Int type=kotlin.Int value=1
i2: CONST Int type=kotlin.Int value=2
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
@@ -183,19 +183,19 @@ FILE fqName:<root> fileName:/contextualInlineCall.kt
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs (_context_receiver_0: <root>.Context, _context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
_context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
i1: CONST Int type=kotlin.Int value=1
i2: CONST Int type=kotlin.Int value=2
SET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs (_context_receiver_0: <root>.Context, _context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int [inline] declared in <root>' type=kotlin.Int origin=null
$receiver: CONST Int type=kotlin.Int value=1
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
_context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=null
$context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
WHEN type=kotlin.String origin=IF
BRANCH
@@ -11,20 +11,20 @@ class Context {
}
inline fun testInline(_context_receiver_0: Context): Int {
return _context_receiver_0.c()
inline fun testInline($context_receiver_0: Context): Int {
return $context_receiver_0.c()
}
inline fun testInlineWithArg(_context_receiver_0: Context, i: Int): Int {
return i.plus(other = _context_receiver_0.c())
inline fun testInlineWithArg($context_receiver_0: Context, i: Int): Int {
return i.plus(other = $context_receiver_0.c())
}
inline fun Int.testInlineWithExtensionAndArg(_context_receiver_0: Context, i: Int): Int {
return <this>.plus(other = i).plus(other = _context_receiver_0.c())
inline fun Int.testInlineWithExtensionAndArg($context_receiver_0: Context, i: Int): Int {
return <this>.plus(other = i).plus(other = $context_receiver_0.c())
}
inline fun Int.testInlineWithExtensionAndMultipleArgs(_context_receiver_0: Context, i1: Int, i2: Int): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = _context_receiver_0.c())
inline fun Int.testInlineWithExtensionAndMultipleArgs($context_receiver_0: Context, i1: Int, i2: Int): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = $context_receiver_0.c())
}
class A {
@@ -40,9 +40,9 @@ class A {
}
inline fun Int.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiver_0: Context, _context_receiver_1: A, i1: Int = 1, i2: Int = 2): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = _context_receiver_0.c()).plus(other = when {
EQEQ(arg0 = _context_receiver_1.<get-a>(), arg1 = null) -> 0
inline fun Int.testInlineWithExtensionAndMultipleContextsAndArgs($context_receiver_0: Context, $context_receiver_1: A, i1: Int = 1, i2: Int = 2): Int {
return <this>.plus(other = i1).plus(other = i2).plus(other = $context_receiver_0.c()).plus(other = when {
EQEQ(arg0 = $context_receiver_1.<get-a>(), arg1 = null) -> 0
else -> 1
})
}
@@ -50,13 +50,13 @@ inline fun Int.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiv
fun box(): String {
return with<Context, Nothing>(receiver = Context(), block = local fun Context.<anonymous>(): Nothing {
var result: Int = 0
result = result.plus(other = testInline(_context_receiver_0 = $this$with))
result = result.plus(other = testInlineWithArg(_context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndArg(_context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleArgs(_context_receiver_0 = $this$with, i1 = 1, i2 = 2))
result = result.plus(other = testInline($context_receiver_0 = $this$with))
result = result.plus(other = testInlineWithArg($context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndArg($context_receiver_0 = $this$with, i = 1))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleArgs($context_receiver_0 = $this$with, i1 = 1, i2 = 2))
with<A, Unit>(receiver = A(a = 1), block = local fun A.<anonymous>() {
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiver_0 = $this$with, _context_receiver_1 = $this$with, i1 = 1, i2 = 2))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs(_context_receiver_0 = $this$with, _context_receiver_1 = $this$with))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs($context_receiver_0 = $this$with, $context_receiver_1 = $this$with, i1 = 1, i2 = 2))
result = result.plus(other = 1.testInlineWithExtensionAndMultipleContextsAndArgs($context_receiver_0 = $this$with, $context_receiver_1 = $this$with))
}
)
return when {
@@ -33,14 +33,14 @@ FILE fqName:<root> fileName:/contextualPrimaryConstructorWithParams.kt
CLASS CLASS name:OK modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.OK
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.O visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:<root>.O, k:kotlin.String) returnType:<root>.OK [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.O
CONSTRUCTOR visibility:public <> ($context_receiver_0:<root>.O, k:kotlin.String) returnType:<root>.OK [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:k index:1 type:kotlin.String
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.O visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.OK declared in <root>.OK' type=<root>.OK origin=null
value: GET_VAR '_context_receiver_0: <root>.O declared in <root>.OK.<init>' type=<root>.O origin=null
value: GET_VAR '$context_receiver_0: <root>.O declared in <root>.OK.<init>' type=<root>.O origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:OK modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:k visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:k type:kotlin.String visibility:private [final]
@@ -95,8 +95,8 @@ FILE fqName:<root> fileName:/contextualPrimaryConstructorWithParams.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.O
BLOCK_BODY
VAR name:ok type:<root>.OK [val]
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: <root>.O, k: kotlin.String) [primary] declared in <root>.OK' type=<root>.OK origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: <root>.O, k: kotlin.String) [primary] declared in <root>.OK' type=<root>.OK origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
k: CONST String type=kotlin.String value="K"
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public final fun <get-result> (): kotlin.String declared in <root>.OK' type=kotlin.String origin=GET_PROPERTY
@@ -13,9 +13,9 @@ class O {
class OK {
private /* final field */ val contextReceiverField0: O
constructor(_context_receiver_0: O, k: String) /* primary */ {
constructor($context_receiver_0: O, k: String) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -32,7 +32,7 @@ class OK {
fun box(): String {
return with<O, String>(receiver = O(o = "O"), block = local fun O.<anonymous>(): String {
val ok: OK = OK(_context_receiver_0 = $this$with, k = "K")
val ok: OK = OK($context_receiver_0 = $this$with, k = "K")
return ok.<get-result>()
}
)
@@ -39,24 +39,24 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:delegateValue type:kotlin.String visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.Delegate declared in <root>.Delegate.<set-delegateValue>' type=<root>.Delegate origin=null
value: GET_VAR '<set-?>: kotlin.String declared in <root>.Delegate.<set-delegateValue>' type=kotlin.String origin=null
FUN name:getValue visibility:public modality:FINAL <> ($this:<root>.Delegate, _context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>) returnType:kotlin.String [operator]
FUN name:getValue visibility:public modality:FINAL <> ($this:<root>.Delegate, $context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>) returnType:kotlin.String [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.Delegate
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:thisRef index:1 type:kotlin.Any?
VALUE_PARAMETER name:property index:2 type:kotlin.reflect.KProperty<*>
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Delegate.getValue' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun getValue (_context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.Delegate.getValue' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun getValue ($context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate'
CALL 'public final fun <get-delegateValue> (): kotlin.String declared in <root>.Delegate' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Delegate declared in <root>.Delegate.getValue' type=<root>.Delegate origin=null
FUN name:setValue visibility:public modality:FINAL <> ($this:<root>.Delegate, _context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>, value:kotlin.String) returnType:kotlin.Unit [operator]
FUN name:setValue visibility:public modality:FINAL <> ($this:<root>.Delegate, $context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>, value:kotlin.String) returnType:kotlin.Unit [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.Delegate
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:thisRef index:1 type:kotlin.Any?
VALUE_PARAMETER name:property index:2 type:kotlin.reflect.KProperty<*>
VALUE_PARAMETER name:value index:3 type:kotlin.String
@@ -64,7 +64,7 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Delegate.setValue' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.Delegate.setValue' type=kotlin.Int origin=null
CALL 'public final fun <set-delegateValue> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Delegate' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.Delegate declared in <root>.Delegate.setValue' type=<root>.Delegate origin=null
<set-?>: GET_VAR 'value: kotlin.String declared in <root>.Delegate.setValue' type=kotlin.String origin=null
@@ -84,13 +84,13 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
CLASS CLASS name:Result modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Result
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:kotlin.Int) returnType:<root>.Result [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
CONSTRUCTOR visibility:public <> ($context_receiver_0:kotlin.Int) returnType:<root>.Result [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result' type=<root>.Result origin=null
value: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Result.<init>' type=kotlin.Int origin=null
value: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.Result.<init>' type=kotlin.Int origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Result modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:s visibility:public modality:FINAL [delegated,var]
FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]
@@ -101,10 +101,10 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
$this: VALUE_PARAMETER name:<this> type:<root>.Result
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-s> (): kotlin.String declared in <root>.Result'
CALL 'public final fun getValue (_context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate' type=kotlin.String origin=null
CALL 'public final fun getValue ($context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate' type=kotlin.String origin=null
$this: GET_FIELD 'FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]' type=<root>.Delegate origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<get-s>' type=<root>.Result origin=null
_context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
$context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<get-s>' type=<root>.Result origin=null
thisRef: GET_VAR '<this>: <root>.Result declared in <root>.Result.<get-s>' type=<root>.Result origin=null
property: PROPERTY_REFERENCE 'public final s: kotlin.String [delegated,var]' field=null getter='public final fun <get-s> (): kotlin.String declared in <root>.Result' setter='public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Result' type=kotlin.reflect.KMutableProperty1<<root>.Result, kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
@@ -113,10 +113,10 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
$this: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
BLOCK_BODY
CALL 'public final fun setValue (_context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: kotlin.String): kotlin.Unit [operator] declared in <root>.Delegate' type=kotlin.Unit origin=null
CALL 'public final fun setValue ($context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: kotlin.String): kotlin.Unit [operator] declared in <root>.Delegate' type=kotlin.Unit origin=null
$this: GET_FIELD 'FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]' type=<root>.Delegate origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<set-s>' type=<root>.Result origin=null
_context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
$context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<set-s>' type=<root>.Result origin=null
thisRef: GET_VAR '<this>: <root>.Result declared in <root>.Result.<set-s>' type=<root>.Result origin=null
property: PROPERTY_REFERENCE 'public final s: kotlin.String [delegated,var]' field=null getter='public final fun <get-s> (): kotlin.String declared in <root>.Result' setter='public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Result' type=kotlin.reflect.KMutableProperty1<<root>.Result, kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
@@ -146,8 +146,8 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): <root>.Result declared in <root>.box'
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
CALL 'public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Result' type=kotlin.Unit origin=EQ
$this: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=null
<set-?>: CONST String type=kotlin.String value="OK"
@@ -15,13 +15,13 @@ class Delegate {
get
set
operator fun getValue(_context_receiver_0: Int, thisRef: Any?, property: KProperty<*>): String {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun getValue($context_receiver_0: Int, thisRef: Any?, property: KProperty<*>): String {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return <this>.<get-delegateValue>()
}
operator fun setValue(_context_receiver_0: Int, thisRef: Any?, property: KProperty<*>, value: String) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun setValue($context_receiver_0: Int, thisRef: Any?, property: KProperty<*>, value: String) {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
<this>.<set-delegateValue>(<set-?> = value)
}
@@ -29,9 +29,9 @@ class Delegate {
class Result {
private /* final field */ val contextReceiverField0: Int
constructor(_context_receiver_0: Int) /* primary */ {
constructor($context_receiver_0: Int) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -39,17 +39,17 @@ class Result {
var s: String /* by */
field = Delegate()
get(): String {
return <this>.#s$delegate.getValue(_context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s)
return <this>.#s$delegate.getValue($context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s)
}
set(<set-?>: String) {
<this>.#s$delegate.setValue(_context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s, value = <set-?>)
<this>.#s$delegate.setValue($context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s, value = <set-?>)
}
}
fun box(): String {
val result: Result = with<Int, Result>(receiver = 1, block = local fun Int.<anonymous>(): Result {
return Result(_context_receiver_0 = $this$with)
return Result($context_receiver_0 = $this$with)
}
)
result.<set-s>(<set-?> = "OK")
@@ -39,10 +39,10 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:delegateValue type:kotlin.String visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.Delegate declared in <root>.Delegate.<set-delegateValue>' type=<root>.Delegate origin=null
value: GET_VAR '<set-?>: kotlin.String declared in <root>.Delegate.<set-delegateValue>' type=kotlin.String origin=null
FUN name:getValue visibility:public modality:FINAL <> ($this:<root>.Delegate, _context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>) returnType:kotlin.String [operator]
FUN name:getValue visibility:public modality:FINAL <> ($this:<root>.Delegate, $context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>) returnType:kotlin.String [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.Delegate
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:thisRef index:1 type:kotlin.Any?
VALUE_PARAMETER name:property index:2 type:kotlin.reflect.KProperty<*>
BLOCK_BODY
@@ -50,14 +50,14 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Delegate.getValue' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun getValue (_context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.Delegate.getValue' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun getValue ($context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate'
CALL 'public final fun <get-delegateValue> (): kotlin.String declared in <root>.Delegate' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Delegate declared in <root>.Delegate.getValue' type=<root>.Delegate origin=null
FUN name:setValue visibility:public modality:FINAL <> ($this:<root>.Delegate, _context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>, value:kotlin.String) returnType:kotlin.Unit [operator]
FUN name:setValue visibility:public modality:FINAL <> ($this:<root>.Delegate, $context_receiver_0:kotlin.Int, thisRef:kotlin.Any?, property:kotlin.reflect.KProperty<*>, value:kotlin.String) returnType:kotlin.Unit [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.Delegate
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:thisRef index:1 type:kotlin.Any?
VALUE_PARAMETER name:property index:2 type:kotlin.reflect.KProperty<*>
VALUE_PARAMETER name:value index:3 type:kotlin.String
@@ -66,7 +66,7 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Delegate.setValue' type=kotlin.Int origin=null
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.Delegate.setValue' type=kotlin.Int origin=null
CALL 'public final fun <set-delegateValue> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Delegate' type=kotlin.Unit origin=EQ
$this: GET_VAR '<this>: <root>.Delegate declared in <root>.Delegate.setValue' type=<root>.Delegate origin=null
<set-?>: GET_VAR 'value: kotlin.String declared in <root>.Delegate.setValue' type=kotlin.String origin=null
@@ -86,13 +86,13 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
CLASS CLASS name:Result modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Result
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:kotlin.Int) returnType:<root>.Result [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
CONSTRUCTOR visibility:public <> ($context_receiver_0:kotlin.Int) returnType:<root>.Result [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result' type=<root>.Result origin=null
value: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Result.<init>' type=kotlin.Int origin=null
value: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.Result.<init>' type=kotlin.Int origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Result modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:s visibility:public modality:FINAL [delegated,var]
FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]
@@ -103,10 +103,10 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
$this: VALUE_PARAMETER name:<this> type:<root>.Result
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-s> (): kotlin.String declared in <root>.Result'
CALL 'public final fun getValue (_context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate' type=kotlin.String origin=null
CALL 'public final fun getValue ($context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>): kotlin.String [operator] declared in <root>.Delegate' type=kotlin.String origin=null
$this: GET_FIELD 'FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]' type=<root>.Delegate origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<get-s>' type=<root>.Result origin=null
_context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
$context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<get-s>' type=<root>.Result origin=null
thisRef: GET_VAR '<this>: <root>.Result declared in <root>.Result.<get-s>' type=<root>.Result origin=null
property: PROPERTY_REFERENCE 'public final s: kotlin.String [delegated,var]' field=null getter='public final fun <get-s> (): kotlin.String declared in <root>.Result' setter='public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Result' type=kotlin.reflect.KMutableProperty1<<root>.Result, kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
@@ -116,10 +116,10 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Result'
CALL 'public final fun setValue (_context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: kotlin.String): kotlin.Unit [operator] declared in <root>.Delegate' type=kotlin.Unit origin=null
CALL 'public final fun setValue ($context_receiver_0: kotlin.Int, thisRef: kotlin.Any?, property: kotlin.reflect.KProperty<*>, value: kotlin.String): kotlin.Unit [operator] declared in <root>.Delegate' type=kotlin.Unit origin=null
$this: GET_FIELD 'FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]' type=<root>.Delegate origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<set-s>' type=<root>.Result origin=null
_context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
$context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result.<set-s>' type=<root>.Result origin=null
thisRef: GET_VAR '<this>: <root>.Result declared in <root>.Result.<set-s>' type=<root>.Result origin=null
property: PROPERTY_REFERENCE 'public final s: kotlin.String [delegated,var]' field=null getter='public final fun <get-s> (): kotlin.String declared in <root>.Result' setter='public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Result' type=kotlin.reflect.KMutableProperty1<<root>.Result, kotlin.String> origin=PROPERTY_REFERENCE_FOR_DELEGATE
@@ -149,8 +149,8 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): <root>.Result declared in <root>.box'
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
CALL 'public final fun <set-s> (<set-?>: kotlin.String): kotlin.Unit declared in <root>.Result' type=kotlin.Unit origin=EQ
$this: GET_VAR 'val result: <root>.Result [val] declared in <root>.box' type=<root>.Result origin=null
<set-?>: CONST String type=kotlin.String value="OK"
@@ -15,16 +15,16 @@ class Delegate {
get
set
operator fun getValue(_context_receiver_0: Int, thisRef: Any?, property: KProperty<*>): String {
operator fun getValue($context_receiver_0: Int, thisRef: Any?, property: KProperty<*>): String {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return <this>.<get-delegateValue>()
}
operator fun setValue(_context_receiver_0: Int, thisRef: Any?, property: KProperty<*>, value: String) {
operator fun setValue($context_receiver_0: Int, thisRef: Any?, property: KProperty<*>, value: String) {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
<this>.<set-delegateValue>(<set-?> = value)
}
@@ -33,9 +33,9 @@ class Delegate {
class Result {
private /* final field */ val contextReceiverField0: Int
constructor(_context_receiver_0: Int) /* primary */ {
constructor($context_receiver_0: Int) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -43,17 +43,17 @@ class Result {
var s: String /* by */
field = Delegate()
get(): String {
return <this>.#s$delegate.getValue(_context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s)
return <this>.#s$delegate.getValue($context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s)
}
set(<set-?>: String) {
return <this>.#s$delegate.setValue(_context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s, value = <set-?>)
return <this>.#s$delegate.setValue($context_receiver_0 = <this>.#contextReceiverField0, thisRef = <this>, property = Result::s, value = <set-?>)
}
}
fun box(): String {
val result: Result = with<Int, Result>(receiver = 1, block = local fun Int.<anonymous>(): Result {
return Result(_context_receiver_0 = $this$with)
return Result($context_receiver_0 = $this$with)
}
)
result.<set-s>(<set-?> = "OK")
@@ -20,10 +20,10 @@ FILE fqName:<root> fileName:/canvas.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS INTERFACE name:Shape modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Shape
FUN name:draw visibility:public modality:ABSTRACT <> ($this:<root>.Shape, _context_receiver_0:<root>.Canvas) returnType:kotlin.String
FUN name:draw visibility:public modality:ABSTRACT <> ($this:<root>.Shape, $context_receiver_0:<root>.Canvas) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:<root>.Shape
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Canvas
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Canvas
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
@@ -43,18 +43,18 @@ FILE fqName:<root> fileName:/canvas.kt
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Circle modality:FINAL visibility:public superTypes:[<root>.Shape]'
FUN name:draw visibility:public modality:OPEN <> ($this:<root>.Circle, _context_receiver_0:<root>.Canvas) returnType:kotlin.String
FUN name:draw visibility:public modality:OPEN <> ($this:<root>.Circle, $context_receiver_0:<root>.Canvas) returnType:kotlin.String
overridden:
public abstract fun draw (_context_receiver_0: <root>.Canvas): kotlin.String declared in <root>.Shape
public abstract fun draw ($context_receiver_0: <root>.Canvas): kotlin.String declared in <root>.Shape
$this: VALUE_PARAMETER name:<this> type:<root>.Circle
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Canvas
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Canvas
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun draw (_context_receiver_0: <root>.Canvas): kotlin.String declared in <root>.Circle'
RETURN type=kotlin.Nothing from='public open fun draw ($context_receiver_0: <root>.Canvas): kotlin.String declared in <root>.Circle'
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CONST String type=kotlin.String value="OK"
other: CALL 'public abstract fun <get-suffix> (): kotlin.String declared in <root>.Canvas' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.Canvas declared in <root>.Circle.draw' type=<root>.Canvas origin=null
$this: GET_VAR '$context_receiver_0: <root>.Canvas declared in <root>.Circle.draw' type=<root>.Canvas origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.Shape
@@ -114,6 +114,6 @@ FILE fqName:<root> fileName:/canvas.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.MyCanvas
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public open fun draw (_context_receiver_0: <root>.Canvas): kotlin.String declared in <root>.Circle' type=kotlin.String origin=null
CALL 'public open fun draw ($context_receiver_0: <root>.Canvas): kotlin.String declared in <root>.Circle' type=kotlin.String origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Circle' type=<root>.Circle origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.MyCanvas declared in <root>.box.<anonymous>' type=<root>.MyCanvas origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.MyCanvas declared in <root>.box.<anonymous>' type=<root>.MyCanvas origin=null
@@ -5,7 +5,7 @@ interface Canvas {
}
interface Shape {
abstract fun draw(_context_receiver_0: Canvas): String
abstract fun draw($context_receiver_0: Canvas): String
}
@@ -16,8 +16,8 @@ class Circle : Shape {
}
override fun draw(_context_receiver_0: Canvas): String {
return "OK".plus(other = _context_receiver_0.<get-suffix>())
override fun draw($context_receiver_0: Canvas): String {
return "OK".plus(other = $context_receiver_0.<get-suffix>())
}
}
@@ -37,7 +37,7 @@ object MyCanvas : Canvas {
fun box(): String {
return with<MyCanvas, String>(receiver = MyCanvas, block = local fun MyCanvas.<anonymous>(): String {
return Circle().draw(_context_receiver_0 = $this$with)
return Circle().draw($context_receiver_0 = $this$with)
}
)
}
@@ -157,35 +157,35 @@ FILE fqName:<root> fileName:/compareTo.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:second type:B of <root>.Pair visibility:private [final]' type=B of <root>.Pair origin=null
receiver: GET_VAR '<this>: <root>.Pair<A of <root>.Pair, B of <root>.Pair> declared in <root>.Pair.toString' type=<root>.Pair<A of <root>.Pair, B of <root>.Pair> origin=null
CONST String type=kotlin.String value=")"
FUN name:compareTo visibility:public modality:FINAL <T> ($receiver:T of <root>.compareTo, _context_receiver_0:java.util.Comparator<T of <root>.compareTo>, other:T of <root>.compareTo) returnType:kotlin.Int [operator,infix]
FUN name:compareTo visibility:public modality:FINAL <T> ($receiver:T of <root>.compareTo, $context_receiver_0:java.util.Comparator<T of <root>.compareTo>, other:T of <root>.compareTo) returnType:kotlin.Int [operator,infix]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.compareTo
VALUE_PARAMETER name:_context_receiver_0 index:0 type:java.util.Comparator<T of <root>.compareTo>
VALUE_PARAMETER name:$context_receiver_0 index:0 type:java.util.Comparator<T of <root>.compareTo>
VALUE_PARAMETER name:other index:1 type:T of <root>.compareTo
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun compareTo <T> (_context_receiver_0: java.util.Comparator<T of <root>.compareTo>, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun compareTo <T> ($context_receiver_0: java.util.Comparator<T of <root>.compareTo>, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>'
CALL 'public abstract fun compare (p0: @[FlexibleNullability] T of java.util.Comparator?, p1: @[FlexibleNullability] T of java.util.Comparator?): kotlin.Int declared in java.util.Comparator' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: java.util.Comparator<T of <root>.compareTo> declared in <root>.compareTo' type=java.util.Comparator<T of <root>.compareTo> origin=null
$this: GET_VAR '$context_receiver_0: java.util.Comparator<T of <root>.compareTo> declared in <root>.compareTo' type=java.util.Comparator<T of <root>.compareTo> origin=null
p0: GET_VAR '<this>: T of <root>.compareTo declared in <root>.compareTo' type=T of <root>.compareTo origin=null
p1: GET_VAR 'other: T of <root>.compareTo declared in <root>.compareTo' type=T of <root>.compareTo origin=null
PROPERTY name:min visibility:public modality:FINAL [val]
FUN name:<get-min> visibility:public modality:FINAL <T> ($receiver:<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>>, _context_receiver_0:java.util.Comparator<T of <root>.<get-min>>) returnType:T of <root>.<get-min>
FUN name:<get-min> visibility:public modality:FINAL <T> ($receiver:<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>>, $context_receiver_0:java.util.Comparator<T of <root>.<get-min>>) returnType:T of <root>.<get-min>
correspondingProperty: PROPERTY name:min visibility:public modality:FINAL [val]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>>
VALUE_PARAMETER name:_context_receiver_0 index:0 type:java.util.Comparator<T of <root>.<get-min>>
VALUE_PARAMETER name:$context_receiver_0 index:0 type:java.util.Comparator<T of <root>.<get-min>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-min> <T> (_context_receiver_0: java.util.Comparator<T of <root>.<get-min>>): T of <root>.<get-min> declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-min> <T> ($context_receiver_0: java.util.Comparator<T of <root>.<get-min>>): T of <root>.<get-min> declared in <root>'
WHEN type=T of <root>.<get-min> origin=IF
BRANCH
if: CALL 'public final fun less (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=LT
arg0: CALL 'public final fun compareTo <T> (_context_receiver_0: java.util.Comparator<T of <root>.compareTo>, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>' type=kotlin.Int origin=null
arg0: CALL 'public final fun compareTo <T> ($context_receiver_0: java.util.Comparator<T of <root>.compareTo>, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>' type=kotlin.Int origin=null
<T>: T of <root>.<get-min>
$receiver: CALL 'public final fun <get-first> (): A of <root>.Pair declared in <root>.Pair' type=T of <root>.<get-min> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> declared in <root>.<get-min>' type=<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> origin=null
_context_receiver_0: GET_VAR '_context_receiver_0: java.util.Comparator<T of <root>.<get-min>> declared in <root>.<get-min>' type=java.util.Comparator<T of <root>.<get-min>> origin=null
$context_receiver_0: GET_VAR '$context_receiver_0: java.util.Comparator<T of <root>.<get-min>> declared in <root>.<get-min>' type=java.util.Comparator<T of <root>.<get-min>> origin=null
other: CALL 'public final fun <get-second> (): B of <root>.Pair declared in <root>.Pair' type=T of <root>.<get-min> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> declared in <root>.<get-min>' type=<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> origin=null
arg1: CONST Int type=kotlin.Int value=0
@@ -236,11 +236,11 @@ FILE fqName:<root> fileName:/compareTo.kt
$receiver: VALUE_PARAMETER name:$this$with type:java.util.Comparator<kotlin.String>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public final fun <get-min> <T> (_context_receiver_0: java.util.Comparator<T of <root>.<get-min>>): T of <root>.<get-min> declared in <root>' type=kotlin.String origin=GET_PROPERTY
CALL 'public final fun <get-min> <T> ($context_receiver_0: java.util.Comparator<T of <root>.<get-min>>): T of <root>.<get-min> declared in <root>' type=kotlin.String origin=GET_PROPERTY
<T>: kotlin.String
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (first: A of <root>.Pair, second: B of <root>.Pair) [primary] declared in <root>.Pair' type=<root>.Pair<kotlin.String, kotlin.String> origin=null
<class: A>: kotlin.String
<class: B>: kotlin.String
first: CONST String type=kotlin.String value="OK"
second: CONST String type=kotlin.String value="fail"
_context_receiver_0: GET_VAR '$this$with: java.util.Comparator<kotlin.String> declared in <root>.box.<anonymous>' type=java.util.Comparator<kotlin.String> origin=null
$context_receiver_0: GET_VAR '$this$with: java.util.Comparator<kotlin.String> declared in <root>.box.<anonymous>' type=java.util.Comparator<kotlin.String> origin=null
@@ -60,14 +60,14 @@ data class Pair<A : Any?, B : Any?> {
}
infix operator fun <T : Any?> T.compareTo(_context_receiver_0: Comparator<T>, other: T): Int {
return _context_receiver_0.compare(p0 = <this>, p1 = other)
infix operator fun <T : Any?> T.compareTo($context_receiver_0: Comparator<T>, other: T): Int {
return $context_receiver_0.compare(p0 = <this>, p1 = other)
}
val <T : Any?> Pair<T, T>.min: T
get(_context_receiver_0: Comparator<T>): T {
get($context_receiver_0: Comparator<T>): T {
return when {
less(arg0 = <this>.<get-first>().compareTo<T>(_context_receiver_0 = _context_receiver_0, other = <this>.<get-second>()), arg1 = 0) -> <this>.<get-first>()
less(arg0 = <this>.<get-first>().compareTo<T>($context_receiver_0 = $context_receiver_0, other = <this>.<get-second>()), arg1 = 0) -> <this>.<get-first>()
else -> <this>.<get-second>()
}
}
@@ -84,7 +84,7 @@ fun box(): String {
}
/*-> Comparator<String> */
return with<Comparator<String>, String>(receiver = comparator, block = local fun Comparator<String>.<anonymous>(): String {
return Pair<String, String>(first = "OK", second = "fail").<get-min><String>(_context_receiver_0 = $this$with)
return Pair<String, String>(first = "OK", second = "fail").<get-min><String>($context_receiver_0 = $this$with)
}
)
}
@@ -157,35 +157,35 @@ FILE fqName:<root> fileName:/compareTo.kt
CONST Boolean type=kotlin.Boolean value=false
RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.Pair'
CONST Boolean type=kotlin.Boolean value=true
FUN name:compareTo visibility:public modality:FINAL <T> ($receiver:T of <root>.compareTo, _context_receiver_0:java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }, other:T of <root>.compareTo) returnType:kotlin.Int [operator,infix]
FUN name:compareTo visibility:public modality:FINAL <T> ($receiver:T of <root>.compareTo, $context_receiver_0:java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }, other:T of <root>.compareTo) returnType:kotlin.Int [operator,infix]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.compareTo
VALUE_PARAMETER name:_context_receiver_0 index:0 type:java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }
VALUE_PARAMETER name:$context_receiver_0 index:0 type:java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }
VALUE_PARAMETER name:other index:1 type:T of <root>.compareTo
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun compareTo <T> (_context_receiver_0: java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun compareTo <T> ($context_receiver_0: java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>'
CALL 'public abstract fun compare (p0: @[FlexibleNullability] T of java.util.Comparator?, p1: @[FlexibleNullability] T of java.util.Comparator?): kotlin.Int declared in java.util.Comparator' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> } declared in <root>.compareTo' type=java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> } origin=null
$this: GET_VAR '$context_receiver_0: java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> } declared in <root>.compareTo' type=java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> } origin=null
p0: GET_VAR '<this>: T of <root>.compareTo declared in <root>.compareTo' type=T of <root>.compareTo origin=null
p1: GET_VAR 'other: T of <root>.compareTo declared in <root>.compareTo' type=T of <root>.compareTo origin=null
PROPERTY name:min visibility:public modality:FINAL [val]
FUN name:<get-min> visibility:public modality:FINAL <T> ($receiver:<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>>, _context_receiver_0:java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }) returnType:T of <root>.<get-min>
FUN name:<get-min> visibility:public modality:FINAL <T> ($receiver:<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>>, $context_receiver_0:java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }) returnType:T of <root>.<get-min>
correspondingProperty: PROPERTY name:min visibility:public modality:FINAL [val]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>>
VALUE_PARAMETER name:_context_receiver_0 index:0 type:java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }
VALUE_PARAMETER name:$context_receiver_0 index:0 type:java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-min> <T> (_context_receiver_0: java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }): T of <root>.<get-min> declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-min> <T> ($context_receiver_0: java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }): T of <root>.<get-min> declared in <root>'
WHEN type=T of <root>.<get-min> origin=IF
BRANCH
if: CALL 'public final fun less (arg0: kotlin.Int, arg1: kotlin.Int): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=LT
arg0: CALL 'public final fun compareTo <T> (_context_receiver_0: java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>' type=kotlin.Int origin=LT
arg0: CALL 'public final fun compareTo <T> ($context_receiver_0: java.util.Comparator<T of <root>.compareTo>{ kotlin.TypeAliasesKt.Comparator<T of <root>.compareTo> }, other: T of <root>.compareTo): kotlin.Int [operator,infix] declared in <root>' type=kotlin.Int origin=LT
<T>: T of <root>.<get-min>
$receiver: CALL 'public final fun <get-first> (): A of <root>.Pair declared in <root>.Pair' type=T of <root>.<get-min> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> declared in <root>.<get-min>' type=<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> origin=null
_context_receiver_0: GET_VAR '_context_receiver_0: java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> } declared in <root>.<get-min>' type=java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> } origin=null
$context_receiver_0: GET_VAR '$context_receiver_0: java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> } declared in <root>.<get-min>' type=java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> } origin=null
other: CALL 'public final fun <get-second> (): B of <root>.Pair declared in <root>.Pair' type=T of <root>.<get-min> origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> declared in <root>.<get-min>' type=<root>.Pair<T of <root>.<get-min>, T of <root>.<get-min>> origin=null
arg1: CONST Int type=kotlin.Int value=0
@@ -238,11 +238,11 @@ FILE fqName:<root> fileName:/compareTo.kt
$receiver: VALUE_PARAMETER name:$this$with type:java.util.Comparator<kotlin.String>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public final fun <get-min> <T> (_context_receiver_0: java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }): T of <root>.<get-min> declared in <root>' type=kotlin.String origin=GET_PROPERTY
CALL 'public final fun <get-min> <T> ($context_receiver_0: java.util.Comparator<T of <root>.<get-min>>{ kotlin.TypeAliasesKt.Comparator<T of <root>.<get-min>> }): T of <root>.<get-min> declared in <root>' type=kotlin.String origin=GET_PROPERTY
<T>: kotlin.String
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (first: A of <root>.Pair, second: B of <root>.Pair) [primary] declared in <root>.Pair' type=<root>.Pair<kotlin.String, kotlin.String> origin=null
<class: A>: kotlin.String
<class: B>: kotlin.String
first: CONST String type=kotlin.String value="OK"
second: CONST String type=kotlin.String value="fail"
_context_receiver_0: GET_VAR '$this$with: java.util.Comparator<kotlin.String> declared in <root>.box.<anonymous>' type=java.util.Comparator<kotlin.String> origin=null
$context_receiver_0: GET_VAR '$this$with: java.util.Comparator<kotlin.String> declared in <root>.box.<anonymous>' type=java.util.Comparator<kotlin.String> origin=null
@@ -60,14 +60,14 @@ data class Pair<A : Any?, B : Any?> {
}
infix operator fun <T : Any?> T.compareTo(_context_receiver_0: Comparator<T>, other: T): Int {
return _context_receiver_0.compare(p0 = <this>, p1 = other)
infix operator fun <T : Any?> T.compareTo($context_receiver_0: Comparator<T>, other: T): Int {
return $context_receiver_0.compare(p0 = <this>, p1 = other)
}
val <T : Any?> Pair<T, T>.min: T
get(_context_receiver_0: Comparator<T>): T {
get($context_receiver_0: Comparator<T>): T {
return when {
less(arg0 = <this>.<get-first>().compareTo<T>(_context_receiver_0 = _context_receiver_0, other = <this>.<get-second>()), arg1 = 0) -> <this>.<get-first>()
less(arg0 = <this>.<get-first>().compareTo<T>($context_receiver_0 = $context_receiver_0, other = <this>.<get-second>()), arg1 = 0) -> <this>.<get-first>()
else -> <this>.<get-second>()
}
}
@@ -84,7 +84,7 @@ fun box(): String {
}
/*-> Comparator<String> */
return with<Comparator<String>, String>(receiver = comparator, block = local fun Comparator<String>.<anonymous>(): String {
return Pair<String, String>(first = "OK", second = "fail").<get-min><String>(_context_receiver_0 = $this$with)
return Pair<String, String>(first = "OK", second = "fail").<get-min><String>($context_receiver_0 = $this$with)
}
)
}
@@ -30,16 +30,16 @@ FILE fqName:<root> fileName:/dp.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:dp visibility:public modality:FINAL [val]
FUN name:<get-dp> visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.View) returnType:kotlin.Int
FUN name:<get-dp> visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.View) returnType:kotlin.Int
correspondingProperty: PROPERTY name:dp visibility:public modality:FINAL [val]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.View
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.View
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-dp> (_context_receiver_0: <root>.View): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-dp> ($context_receiver_0: <root>.View): kotlin.Int declared in <root>'
CALL 'public final fun times (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MUL
$this: CALL 'public final fun <get-coefficient> (): kotlin.Int declared in <root>.View' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.View declared in <root>.<get-dp>' type=<root>.View origin=null
$this: GET_VAR '$context_receiver_0: <root>.View declared in <root>.<get-dp>' type=<root>.View origin=null
other: GET_VAR '<this>: kotlin.Int declared in <root>.<get-dp>' type=kotlin.Int origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
BLOCK_BODY
@@ -68,9 +68,9 @@ FILE fqName:<root> fileName:/dp.kt
VALUE_PARAMETER name:it index:0 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.Int): kotlin.Int declared in <root>.box.<anonymous>'
CALL 'public final fun <get-dp> (_context_receiver_0: <root>.View): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
CALL 'public final fun <get-dp> ($context_receiver_0: <root>.View): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
$receiver: GET_VAR 'it: kotlin.Int declared in <root>.box.<anonymous>.<anonymous>' type=kotlin.Int origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.View declared in <root>.box.<anonymous>' type=<root>.View origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.View declared in <root>.box.<anonymous>' type=<root>.View origin=null
arg1: CALL 'public final fun listOf <T> (vararg elements: T of kotlin.collections.CollectionsKt.listOf): kotlin.collections.List<T of kotlin.collections.CollectionsKt.listOf> declared in kotlin.collections.CollectionsKt' type=kotlin.collections.List<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
@@ -12,15 +12,15 @@ class View {
}
val Int.dp: Int
get(_context_receiver_0: View): Int {
return _context_receiver_0.<get-coefficient>().times(other = <this>)
get($context_receiver_0: View): Int {
return $context_receiver_0.<get-coefficient>().times(other = <this>)
}
fun box(): String {
with<View, Nothing>(receiver = View(), block = local fun View.<anonymous>(): Nothing {
when {
EQEQ(arg0 = listOf<Int>(elements = [1, 2, 10]).map<Int, Int>(transform = local fun <anonymous>(it: Int): Int {
return it.<get-dp>(_context_receiver_0 = $this$with)
return it.<get-dp>($context_receiver_0 = $this$with)
}
), arg1 = listOf<Int>(elements = [42, 84, 420])) -> return "OK"
}
@@ -30,16 +30,16 @@ FILE fqName:<root> fileName:/dp.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:dp visibility:public modality:FINAL [val]
FUN name:<get-dp> visibility:public modality:FINAL <> ($receiver:kotlin.Int, _context_receiver_0:<root>.View) returnType:kotlin.Int
FUN name:<get-dp> visibility:public modality:FINAL <> ($receiver:kotlin.Int, $context_receiver_0:<root>.View) returnType:kotlin.Int
correspondingProperty: PROPERTY name:dp visibility:public modality:FINAL [val]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.View
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.View
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-dp> (_context_receiver_0: <root>.View): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-dp> ($context_receiver_0: <root>.View): kotlin.Int declared in <root>'
CALL 'public final fun times (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MUL
$this: CALL 'public final fun <get-coefficient> (): kotlin.Int declared in <root>.View' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.View declared in <root>.<get-dp>' type=<root>.View origin=null
$this: GET_VAR '$context_receiver_0: <root>.View declared in <root>.<get-dp>' type=<root>.View origin=null
other: GET_VAR '<this>: kotlin.Int declared in <root>.<get-dp>' type=kotlin.Int origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
BLOCK_BODY
@@ -68,9 +68,9 @@ FILE fqName:<root> fileName:/dp.kt
VALUE_PARAMETER name:it index:0 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.Int): kotlin.Int declared in <root>.box.<anonymous>'
CALL 'public final fun <get-dp> (_context_receiver_0: <root>.View): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
CALL 'public final fun <get-dp> ($context_receiver_0: <root>.View): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
$receiver: GET_VAR 'it: kotlin.Int declared in <root>.box.<anonymous>.<anonymous>' type=kotlin.Int origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.View declared in <root>.box.<anonymous>' type=<root>.View origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.View declared in <root>.box.<anonymous>' type=<root>.View origin=null
arg1: CALL 'public final fun listOf <T> (vararg elements: T of kotlin.collections.CollectionsKt.listOf): kotlin.collections.List<T of kotlin.collections.CollectionsKt.listOf> declared in kotlin.collections.CollectionsKt' type=kotlin.collections.List<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
@@ -12,15 +12,15 @@ class View {
}
val Int.dp: Int
get(_context_receiver_0: View): Int {
return _context_receiver_0.<get-coefficient>().times(other = <this>)
get($context_receiver_0: View): Int {
return $context_receiver_0.<get-coefficient>().times(other = <this>)
}
fun box(): String {
with<View, Nothing>(receiver = View(), block = local fun View.<anonymous>(): Nothing {
when {
EQEQ(arg0 = listOf<Int>(elements = [1, 2, 10]).map<Int, Int>(transform = local fun <anonymous>(it: Int): Int {
return it.<get-dp>(_context_receiver_0 = $this$with)
return it.<get-dp>($context_receiver_0 = $this$with)
}
), arg1 = listOf<Int>(elements = [42, 84, 420])) -> { // BLOCK
return "OK"
@@ -78,17 +78,17 @@ FILE fqName:<root> fileName:/functionalType.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:f visibility:public modality:FINAL <T> ($receiver:<root>.K, _context_receiver_0:<root>.O, g:@[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>) returnType:T of <root>.f
FUN name:f visibility:public modality:FINAL <T> ($receiver:<root>.K, $context_receiver_0:<root>.O, g:@[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>) returnType:T of <root>.f
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.K
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:g index:1 type:@[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun f <T> (_context_receiver_0: <root>.O, g: @[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>'
RETURN type=kotlin.Nothing from='public final fun f <T> ($context_receiver_0: <root>.O, g: @[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>'
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function3, p2: P2 of kotlin.Function3, p3: P3 of kotlin.Function3): R of kotlin.Function3 [operator] declared in kotlin.Function3' type=T of <root>.f origin=INVOKE
$this: GET_VAR 'g: @[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f> declared in <root>.f' type=@[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.O declared in <root>.f' type=<root>.O origin=null
p1: GET_VAR '$context_receiver_0: <root>.O declared in <root>.f' type=<root>.O origin=null
p2: GET_VAR '<this>: <root>.K declared in <root>.f' type=<root>.K origin=null
p3: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Param' type=<root>.Param origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
@@ -103,18 +103,18 @@ FILE fqName:<root> fileName:/functionalType.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.O
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public final fun f <T> (_context_receiver_0: <root>.O, g: @[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>' type=kotlin.String origin=null
CALL 'public final fun f <T> ($context_receiver_0: <root>.O, g: @[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>' type=kotlin.String origin=null
<T>: kotlin.String
$receiver: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.K' type=<root>.K origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
g: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function3<<root>.O, <root>.K, <root>.Param, kotlin.String> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.K, _context_receiver_0:<root>.O, it:<root>.Param) returnType:kotlin.String
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.K, $context_receiver_0:<root>.O, it:<root>.Param) returnType:kotlin.String
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$f type:<root>.K
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:it index:1 type:<root>.Param
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (_context_receiver_0: <root>.O, it: <root>.Param): kotlin.String declared in <root>.box.<anonymous>'
RETURN type=kotlin.Nothing from='local final fun <anonymous> ($context_receiver_0: <root>.O, it: <root>.Param): kotlin.String declared in <root>.box.<anonymous>'
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun <get-o> (): kotlin.String declared in <root>.O' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
@@ -33,13 +33,13 @@ class K {
}
fun <T : Any?> K.f(_context_receiver_0: O, g: @ExtensionFunctionType Function3<O, K, Param, T>): T {
return g.invoke(p1 = _context_receiver_0, p2 = <this>, p3 = Param())
fun <T : Any?> K.f($context_receiver_0: O, g: @ExtensionFunctionType Function3<O, K, Param, T>): T {
return g.invoke(p1 = $context_receiver_0, p2 = <this>, p3 = Param())
}
fun box(): String {
return with<O, String>(receiver = O(), block = local fun O.<anonymous>(): String {
return K().f<String>(_context_receiver_0 = $this$with, g = local fun K.<anonymous>(_context_receiver_0: O, it: Param): String {
return K().f<String>($context_receiver_0 = $this$with, g = local fun K.<anonymous>($context_receiver_0: O, it: Param): String {
return $this$with.<get-o>().plus(other = $this$f.<get-k>())
}
)
@@ -78,17 +78,17 @@ FILE fqName:<root> fileName:/functionalType.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:f visibility:public modality:FINAL <T> ($receiver:<root>.K, _context_receiver_0:<root>.O, g:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>) returnType:T of <root>.f
FUN name:f visibility:public modality:FINAL <T> ($receiver:<root>.K, $context_receiver_0:<root>.O, g:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>) returnType:T of <root>.f
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.K
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:g index:1 type:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun f <T> (_context_receiver_0: <root>.O, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>'
RETURN type=kotlin.Nothing from='public final fun f <T> ($context_receiver_0: <root>.O, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>'
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function3, p2: P2 of kotlin.Function3, p3: P3 of kotlin.Function3): R of kotlin.Function3 [operator] declared in kotlin.Function3' type=T of <root>.f origin=INVOKE
$this: GET_VAR 'g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f> declared in <root>.f' type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.O declared in <root>.f' type=<root>.O origin=null
p1: GET_VAR '$context_receiver_0: <root>.O declared in <root>.f' type=<root>.O origin=null
p2: GET_VAR '<this>: <root>.K declared in <root>.f' type=<root>.K origin=null
p3: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Param' type=<root>.Param origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
@@ -103,18 +103,18 @@ FILE fqName:<root> fileName:/functionalType.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.O
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public final fun f <T> (_context_receiver_0: <root>.O, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>' type=kotlin.String origin=null
CALL 'public final fun f <T> ($context_receiver_0: <root>.O, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, T of <root>.f>): T of <root>.f declared in <root>' type=kotlin.String origin=null
<T>: kotlin.String
$receiver: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.K' type=<root>.K origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
g: FUN_EXPR type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.O, <root>.K, <root>.Param, kotlin.String> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.K, _context_receiver_0:<root>.O, it:<root>.Param) returnType:kotlin.String
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.K, $context_receiver_0:<root>.O, it:<root>.Param) returnType:kotlin.String
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$f type:<root>.K
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.O
VALUE_PARAMETER name:it index:1 type:<root>.Param
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (_context_receiver_0: <root>.O, it: <root>.Param): kotlin.String declared in <root>.box.<anonymous>'
RETURN type=kotlin.Nothing from='local final fun <anonymous> ($context_receiver_0: <root>.O, it: <root>.Param): kotlin.String declared in <root>.box.<anonymous>'
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun <get-o> (): kotlin.String declared in <root>.O' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.O declared in <root>.box.<anonymous>' type=<root>.O origin=null
@@ -33,13 +33,13 @@ class K {
}
fun <T : Any?> K.f(_context_receiver_0: O, g: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function3<O, K, Param, T>): T {
return g.invoke(p1 = _context_receiver_0, p2 = <this>, p3 = Param())
fun <T : Any?> K.f($context_receiver_0: O, g: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function3<O, K, Param, T>): T {
return g.invoke(p1 = $context_receiver_0, p2 = <this>, p3 = Param())
}
fun box(): String {
return with<O, String>(receiver = O(), block = local fun O.<anonymous>(): String {
return K().f<String>(_context_receiver_0 = $this$with, g = local fun K.<anonymous>(_context_receiver_0: O, it: Param): String {
return K().f<String>($context_receiver_0 = $this$with, g = local fun K.<anonymous>($context_receiver_0: O, it: Param): String {
return $this$with.<get-o>().plus(other = $this$f.<get-k>())
}
)
@@ -135,19 +135,19 @@ FILE fqName:<root> fileName:/monoidSum.kt
overridden:
public open fun toString (): kotlin.String [fake_override] declared in <root>.Monoid
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:sum visibility:public modality:FINAL <T> ($receiver:kotlin.collections.List<T of <root>.sum>, _context_receiver_0:<root>.Monoid<T of <root>.sum>) returnType:T of <root>.sum
FUN name:sum visibility:public modality:FINAL <T> ($receiver:kotlin.collections.List<T of <root>.sum>, $context_receiver_0:<root>.Monoid<T of <root>.sum>) returnType:T of <root>.sum
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<T of <root>.sum>
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Monoid<T of <root>.sum>
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Monoid<T of <root>.sum>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun sum <T> (_context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>'
RETURN type=kotlin.Nothing from='public final fun sum <T> ($context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>'
CALL 'public final fun fold <T, R> (initial: R of kotlin.collections.CollectionsKt.fold, operation: kotlin.Function2<R of kotlin.collections.CollectionsKt.fold, T of kotlin.collections.CollectionsKt.fold, R of kotlin.collections.CollectionsKt.fold>): R of kotlin.collections.CollectionsKt.fold [inline] declared in kotlin.collections.CollectionsKt' type=T of <root>.sum origin=null
<T>: T of <root>.sum
<R>: T of <root>.sum
$receiver: GET_VAR '<this>: kotlin.collections.List<T of <root>.sum> declared in <root>.sum' type=kotlin.collections.List<T of <root>.sum> origin=null
initial: CALL 'public abstract fun <get-unit> (): T of <root>.Monoid declared in <root>.Monoid' type=T of <root>.sum origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
$this: GET_VAR '$context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
operation: FUN_EXPR type=kotlin.Function2<T of <root>.sum, T of <root>.sum, T of <root>.sum> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (acc:T of <root>.sum, e:T of <root>.sum) returnType:T of <root>.sum
VALUE_PARAMETER name:acc index:0 type:T of <root>.sum
@@ -155,7 +155,7 @@ FILE fqName:<root> fileName:/monoidSum.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (acc: T of <root>.sum, e: T of <root>.sum): T of <root>.sum declared in <root>.sum'
CALL 'public abstract fun combine (other: T of <root>.Monoid): T of <root>.Monoid [fake_override,infix] declared in <root>.Monoid' type=T of <root>.sum origin=null
$this: GET_VAR '_context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
$this: GET_VAR '$context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
$receiver: GET_VAR 'acc: T of <root>.sum declared in <root>.sum.<anonymous>' type=T of <root>.sum origin=null
other: GET_VAR 'e: T of <root>.sum declared in <root>.sum.<anonymous>' type=T of <root>.sum origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
@@ -170,7 +170,7 @@ FILE fqName:<root> fileName:/monoidSum.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.IntMonoid
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.box'
CALL 'public final fun sum <T> (_context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.Int origin=null
CALL 'public final fun sum <T> ($context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.Int origin=null
<T>: kotlin.Int
$receiver: CALL 'public final fun listOf <T> (vararg elements: T of kotlin.collections.CollectionsKt.listOf): kotlin.collections.List<T of kotlin.collections.CollectionsKt.listOf> declared in kotlin.collections.CollectionsKt' type=kotlin.collections.List<kotlin.Int> origin=null
<T>: kotlin.Int
@@ -178,7 +178,7 @@ FILE fqName:<root> fileName:/monoidSum.kt
CONST Int type=kotlin.Int value=1
CONST Int type=kotlin.Int value=2
CONST Int type=kotlin.Int value=3
_context_receiver_0: GET_VAR '$this$with: <root>.IntMonoid declared in <root>.box.<anonymous>' type=<root>.IntMonoid origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.IntMonoid declared in <root>.box.<anonymous>' type=<root>.IntMonoid origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.String origin=null
<T>: <root>.StringMonoid
@@ -189,11 +189,11 @@ FILE fqName:<root> fileName:/monoidSum.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.StringMonoid
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public final fun sum <T> (_context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.String origin=null
CALL 'public final fun sum <T> ($context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.String origin=null
<T>: kotlin.String
$receiver: CALL 'public final fun listOf <T> (vararg elements: T of kotlin.collections.CollectionsKt.listOf): kotlin.collections.List<T of kotlin.collections.CollectionsKt.listOf> declared in kotlin.collections.CollectionsKt' type=kotlin.collections.List<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="O"
CONST String type=kotlin.String value="K"
_context_receiver_0: GET_VAR '$this$with: <root>.StringMonoid declared in <root>.box.<anonymous>' type=<root>.StringMonoid origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.StringMonoid declared in <root>.box.<anonymous>' type=<root>.StringMonoid origin=null
@@ -43,20 +43,20 @@ object StringMonoid : Monoid<String> {
}
fun <T : Any?> List<T>.sum(_context_receiver_0: Monoid<T>): T {
return <this>.fold<T, T>(initial = _context_receiver_0.<get-unit>(), operation = local fun <anonymous>(acc: T, e: T): T {
return (_context_receiver_0, acc).combine(other = e)
fun <T : Any?> List<T>.sum($context_receiver_0: Monoid<T>): T {
return <this>.fold<T, T>(initial = $context_receiver_0.<get-unit>(), operation = local fun <anonymous>(acc: T, e: T): T {
return ($context_receiver_0, acc).combine(other = e)
}
)
}
fun box(): String {
with<IntMonoid, Int>(receiver = IntMonoid, block = local fun IntMonoid.<anonymous>(): Int {
return listOf<Int>(elements = [1, 2, 3]).sum<Int>(_context_receiver_0 = $this$with)
return listOf<Int>(elements = [1, 2, 3]).sum<Int>($context_receiver_0 = $this$with)
}
) /*~> Unit */
return with<StringMonoid, String>(receiver = StringMonoid, block = local fun StringMonoid.<anonymous>(): String {
return listOf<String>(elements = ["O", "K"]).sum<String>(_context_receiver_0 = $this$with)
return listOf<String>(elements = ["O", "K"]).sum<String>($context_receiver_0 = $this$with)
}
)
}
@@ -135,19 +135,19 @@ FILE fqName:<root> fileName:/monoidSum.kt
overridden:
public open fun toString (): kotlin.String [fake_override] declared in <root>.Monoid
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:sum visibility:public modality:FINAL <T> ($receiver:kotlin.collections.List<T of <root>.sum>, _context_receiver_0:<root>.Monoid<T of <root>.sum>) returnType:T of <root>.sum
FUN name:sum visibility:public modality:FINAL <T> ($receiver:kotlin.collections.List<T of <root>.sum>, $context_receiver_0:<root>.Monoid<T of <root>.sum>) returnType:T of <root>.sum
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<T of <root>.sum>
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Monoid<T of <root>.sum>
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Monoid<T of <root>.sum>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun sum <T> (_context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>'
RETURN type=kotlin.Nothing from='public final fun sum <T> ($context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>'
CALL 'public final fun fold <T, R> (initial: R of kotlin.collections.CollectionsKt.fold, operation: kotlin.Function2<@[ParameterName(name = 'acc')] R of kotlin.collections.CollectionsKt.fold, T of kotlin.collections.CollectionsKt.fold, R of kotlin.collections.CollectionsKt.fold>): R of kotlin.collections.CollectionsKt.fold [inline] declared in kotlin.collections.CollectionsKt' type=T of <root>.sum origin=null
<T>: T of <root>.sum
<R>: T of <root>.sum
$receiver: GET_VAR '<this>: kotlin.collections.List<T of <root>.sum> declared in <root>.sum' type=kotlin.collections.List<T of <root>.sum> origin=null
initial: CALL 'public abstract fun <get-unit> (): T of <root>.Monoid declared in <root>.Monoid' type=T of <root>.sum origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
$this: GET_VAR '$context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
operation: FUN_EXPR type=kotlin.Function2<@[ParameterName(name = 'acc')] T of <root>.sum, T of <root>.sum, T of <root>.sum> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (acc:T of <root>.sum, e:T of <root>.sum) returnType:T of <root>.sum
VALUE_PARAMETER name:acc index:0 type:T of <root>.sum
@@ -155,7 +155,7 @@ FILE fqName:<root> fileName:/monoidSum.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (acc: T of <root>.sum, e: T of <root>.sum): T of <root>.sum declared in <root>.sum'
CALL 'public abstract fun combine (other: T of <root>.Monoid): T of <root>.Monoid [fake_override,infix] declared in <root>.Monoid' type=T of <root>.sum origin=null
$this: GET_VAR '_context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
$this: GET_VAR '$context_receiver_0: <root>.Monoid<T of <root>.sum> declared in <root>.sum' type=<root>.Monoid<T of <root>.sum> origin=null
$receiver: GET_VAR 'acc: T of <root>.sum declared in <root>.sum.<anonymous>' type=T of <root>.sum origin=null
other: GET_VAR 'e: T of <root>.sum declared in <root>.sum.<anonymous>' type=T of <root>.sum origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
@@ -170,7 +170,7 @@ FILE fqName:<root> fileName:/monoidSum.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.IntMonoid
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.box'
CALL 'public final fun sum <T> (_context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.Int origin=null
CALL 'public final fun sum <T> ($context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.Int origin=null
<T>: kotlin.Int
$receiver: CALL 'public final fun listOf <T> (vararg elements: T of kotlin.collections.CollectionsKt.listOf): kotlin.collections.List<T of kotlin.collections.CollectionsKt.listOf> declared in kotlin.collections.CollectionsKt' type=kotlin.collections.List<kotlin.Int> origin=null
<T>: kotlin.Int
@@ -178,7 +178,7 @@ FILE fqName:<root> fileName:/monoidSum.kt
CONST Int type=kotlin.Int value=1
CONST Int type=kotlin.Int value=2
CONST Int type=kotlin.Int value=3
_context_receiver_0: GET_VAR '$this$with: <root>.IntMonoid declared in <root>.box.<anonymous>' type=<root>.IntMonoid origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.IntMonoid declared in <root>.box.<anonymous>' type=<root>.IntMonoid origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.String origin=null
<T>: <root>.StringMonoid
@@ -189,11 +189,11 @@ FILE fqName:<root> fileName:/monoidSum.kt
$receiver: VALUE_PARAMETER name:$this$with type:<root>.StringMonoid
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.box'
CALL 'public final fun sum <T> (_context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.String origin=null
CALL 'public final fun sum <T> ($context_receiver_0: <root>.Monoid<T of <root>.sum>): T of <root>.sum declared in <root>' type=kotlin.String origin=null
<T>: kotlin.String
$receiver: CALL 'public final fun listOf <T> (vararg elements: T of kotlin.collections.CollectionsKt.listOf): kotlin.collections.List<T of kotlin.collections.CollectionsKt.listOf> declared in kotlin.collections.CollectionsKt' type=kotlin.collections.List<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value="O"
CONST String type=kotlin.String value="K"
_context_receiver_0: GET_VAR '$this$with: <root>.StringMonoid declared in <root>.box.<anonymous>' type=<root>.StringMonoid origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.StringMonoid declared in <root>.box.<anonymous>' type=<root>.StringMonoid origin=null
@@ -43,20 +43,20 @@ object StringMonoid : Monoid<String> {
}
fun <T : Any?> List<T>.sum(_context_receiver_0: Monoid<T>): T {
return <this>.fold<T, T>(initial = _context_receiver_0.<get-unit>(), operation = local fun <anonymous>(acc: T, e: T): T {
return (_context_receiver_0, acc).combine(other = e)
fun <T : Any?> List<T>.sum($context_receiver_0: Monoid<T>): T {
return <this>.fold<T, T>(initial = $context_receiver_0.<get-unit>(), operation = local fun <anonymous>(acc: T, e: T): T {
return ($context_receiver_0, acc).combine(other = e)
}
)
}
fun box(): String {
with<IntMonoid, Int>(receiver = IntMonoid, block = local fun IntMonoid.<anonymous>(): Int {
return listOf<Int>(elements = [1, 2, 3]).sum<Int>(_context_receiver_0 = $this$with)
return listOf<Int>(elements = [1, 2, 3]).sum<Int>($context_receiver_0 = $this$with)
}
) /*~> Unit */
return with<StringMonoid, String>(receiver = StringMonoid, block = local fun StringMonoid.<anonymous>(): String {
return listOf<String>(elements = ["O", "K"]).sum<String>(_context_receiver_0 = $this$with)
return listOf<String>(elements = ["O", "K"]).sum<String>($context_receiver_0 = $this$with)
}
)
}
@@ -29,13 +29,13 @@ FILE fqName:<root> fileName:/function.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:FINAL <> (_context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN name:foo visibility:public modality:FINAL <> ($context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.foo' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.foo' type=<root>.C origin=null
FUN name:bar visibility:public modality:FINAL <> (c:<root>.C) returnType:kotlin.Unit
VALUE_PARAMETER name:c index:0 type:<root>.C
BLOCK_BODY
@@ -47,5 +47,5 @@ FILE fqName:<root> fileName:/function.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.C) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.C
BLOCK_BODY
CALL 'public final fun foo (_context_receiver_0: <root>.C): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.bar.<anonymous>' type=<root>.C origin=null
CALL 'public final fun foo ($context_receiver_0: <root>.C): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.bar.<anonymous>' type=<root>.C origin=null
@@ -11,13 +11,13 @@ class C {
}
fun foo(_context_receiver_0: C) {
_context_receiver_0.<get-c>() /*~> Unit */
fun foo($context_receiver_0: C) {
$context_receiver_0.<get-c>() /*~> Unit */
}
fun bar(c: C) {
with<C, Unit>(receiver = c, block = local fun C.<anonymous>() {
foo(_context_receiver_0 = $this$with)
foo($context_receiver_0 = $this$with)
}
)
}
@@ -78,52 +78,52 @@ FILE fqName:<root> fileName:/functionalType.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:f1 visibility:public modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, g:@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f1 visibility:public modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, g:@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function3, p2: P2 of kotlin.Function3, p3: P3 of kotlin.Function3): R of kotlin.Function3 [operator] declared in kotlin.Function3' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: @[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> declared in <root>.f1' type=@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f1' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f1' type=<root>.C origin=null
p2: GET_VAR '<this>: <root>.R declared in <root>.f1' type=<root>.R origin=null
p3: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Param' type=<root>.Param origin=null
FUN name:f2 visibility:public modality:FINAL <> (_context_receiver_0:<root>.C, g:kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f2 visibility:public modality:FINAL <> ($context_receiver_0:<root>.C, g:kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function2, p2: P2 of kotlin.Function2): R of kotlin.Function2 [operator] declared in kotlin.Function2' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> declared in <root>.f2' type=kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f2' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f2' type=<root>.C origin=null
p2: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Param' type=<root>.Param origin=null
FUN name:f3 visibility:public modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, g:@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f3 visibility:public modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, g:@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function2, p2: P2 of kotlin.Function2): R of kotlin.Function2 [operator] declared in kotlin.Function2' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: @[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> declared in <root>.f3' type=@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f3' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f3' type=<root>.C origin=null
p2: GET_VAR '<this>: <root>.R declared in <root>.f3' type=<root>.R origin=null
FUN name:f4 visibility:public modality:FINAL <> (_context_receiver_0:<root>.C, g:kotlin.Function1<<root>.C, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f4 visibility:public modality:FINAL <> ($context_receiver_0:<root>.C, g:kotlin.Function1<<root>.C, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:kotlin.Function1<<root>.C, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function1): R of kotlin.Function1 [operator] declared in kotlin.Function1' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: kotlin.Function1<<root>.C, kotlin.Unit> declared in <root>.f4' type=kotlin.Function1<<root>.C, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f4' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f4' type=<root>.C origin=null
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
VAR name:lf1 type:@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> [val]
FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<unused var> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
@@ -131,39 +131,39 @@ FILE fqName:<root> fileName:/functionalType.kt
$this: GET_VAR '<this>: <root>.R declared in <root>.test.<anonymous>' type=<root>.R origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
VAR name:lf2 type:kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> [val]
FUN_EXPR type=kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<unused var> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
VAR name:lf3 type:@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> [val]
FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-r> (): kotlin.Int declared in <root>.R' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.R declared in <root>.test.<anonymous>' type=<root>.R origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
VAR name:lf4 type:kotlin.Function1<<root>.C, kotlin.Unit> [val]
FUN_EXPR type=kotlin.Function1<<root>.C, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
<T>: <root>.C
<R>: kotlin.Unit
@@ -180,18 +180,18 @@ FILE fqName:<root> fileName:/functionalType.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.R
BLOCK_BODY
CALL 'public final fun f1 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f1 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf1: @[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> [val] declared in <root>.test' type=@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=null
CALL 'public final fun f1 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f1 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$f1 type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<unused var> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
@@ -200,32 +200,32 @@ FILE fqName:<root> fileName:/functionalType.kt
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f2 (_context_receiver_0: <root>.C, g: kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f2 ($context_receiver_0: <root>.C, g: kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf2: kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> [val] declared in <root>.test' type=kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=null
CALL 'public final fun f2 (_context_receiver_0: <root>.C, g: kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f2 ($context_receiver_0: <root>.C, g: kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C, <unused var>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<unused var> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f3 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f3 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf3: @[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> [val] declared in <root>.test' type=@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=null
CALL 'public final fun f3 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f3 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$f3 type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-r> (): kotlin.Int declared in <root>.R' type=kotlin.Int origin=GET_PROPERTY
@@ -233,15 +233,15 @@ FILE fqName:<root> fileName:/functionalType.kt
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f4 (_context_receiver_0: <root>.C, g: kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f4 ($context_receiver_0: <root>.C, g: kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf4: kotlin.Function1<<root>.C, kotlin.Unit> [val] declared in <root>.test' type=kotlin.Function1<<root>.C, kotlin.Unit> origin=null
CALL 'public final fun f4 (_context_receiver_0: <root>.C, g: kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f4 ($context_receiver_0: <root>.C, g: kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=kotlin.Function1<<root>.C, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
@@ -33,62 +33,62 @@ class R {
}
fun R.f1(_context_receiver_0: C, g: @ExtensionFunctionType Function3<C, R, Param, Unit>) {
g.invoke(p1 = _context_receiver_0, p2 = <this>, p3 = Param())
fun R.f1($context_receiver_0: C, g: @ExtensionFunctionType Function3<C, R, Param, Unit>) {
g.invoke(p1 = $context_receiver_0, p2 = <this>, p3 = Param())
}
fun f2(_context_receiver_0: C, g: Function2<C, Param, Unit>) {
g.invoke(p1 = _context_receiver_0, p2 = Param())
fun f2($context_receiver_0: C, g: Function2<C, Param, Unit>) {
g.invoke(p1 = $context_receiver_0, p2 = Param())
}
fun R.f3(_context_receiver_0: C, g: @ExtensionFunctionType Function2<C, R, Unit>) {
g.invoke(p1 = _context_receiver_0, p2 = <this>)
fun R.f3($context_receiver_0: C, g: @ExtensionFunctionType Function2<C, R, Unit>) {
g.invoke(p1 = $context_receiver_0, p2 = <this>)
}
fun f4(_context_receiver_0: C, g: Function1<C, Unit>) {
g.invoke(p1 = _context_receiver_0)
fun f4($context_receiver_0: C, g: Function1<C, Unit>) {
g.invoke(p1 = $context_receiver_0)
}
fun test() {
val lf1: @ExtensionFunctionType Function3<C, R, Param, Unit> = local fun R.<anonymous>(_context_receiver_0: C, <unused var>: Param) {
val lf1: @ExtensionFunctionType Function3<C, R, Param, Unit> = local fun R.<anonymous>($context_receiver_0: C, <unused var>: Param) {
<this>.<get-r>() /*~> Unit */
_context_receiver_0.<get-c>() /*~> Unit */
$context_receiver_0.<get-c>() /*~> Unit */
}
val lf2: Function2<C, Param, Unit> = local fun <anonymous>(_context_receiver_0: C, <unused var>: Param) {
_context_receiver_0.<get-c>() /*~> Unit */
val lf2: Function2<C, Param, Unit> = local fun <anonymous>($context_receiver_0: C, <unused var>: Param) {
$context_receiver_0.<get-c>() /*~> Unit */
}
val lf3: @ExtensionFunctionType Function2<C, R, Unit> = local fun R.<anonymous>(_context_receiver_0: C) {
val lf3: @ExtensionFunctionType Function2<C, R, Unit> = local fun R.<anonymous>($context_receiver_0: C) {
<this>.<get-r>() /*~> Unit */
_context_receiver_0.<get-c>() /*~> Unit */
$context_receiver_0.<get-c>() /*~> Unit */
}
val lf4: Function1<C, Unit> = local fun <anonymous>(_context_receiver_0: C) {
_context_receiver_0.<get-c>() /*~> Unit */
val lf4: Function1<C, Unit> = local fun <anonymous>($context_receiver_0: C) {
$context_receiver_0.<get-c>() /*~> Unit */
}
with<C, Unit>(receiver = C(), block = local fun C.<anonymous>() {
with<R, Unit>(receiver = R(), block = local fun R.<anonymous>() {
$this$with.f1(_context_receiver_0 = $this$with, g = lf1)
$this$with.f1(_context_receiver_0 = $this$with, g = local fun R.<anonymous>(_context_receiver_0: C, <unused var>: Param) {
$this$with.f1($context_receiver_0 = $this$with, g = lf1)
$this$with.f1($context_receiver_0 = $this$with, g = local fun R.<anonymous>($context_receiver_0: C, <unused var>: Param) {
$this$f1.<get-r>() /*~> Unit */
$this$with.<get-c>() /*~> Unit */
}
)
f2(_context_receiver_0 = $this$with, g = lf2)
f2(_context_receiver_0 = $this$with, g = local fun <anonymous>(_context_receiver_0: C, <unused var>: Param) {
f2($context_receiver_0 = $this$with, g = lf2)
f2($context_receiver_0 = $this$with, g = local fun <anonymous>($context_receiver_0: C, <unused var>: Param) {
$this$with.<get-c>() /*~> Unit */
}
)
$this$with.f3(_context_receiver_0 = $this$with, g = lf3)
$this$with.f3(_context_receiver_0 = $this$with, g = local fun R.<anonymous>(_context_receiver_0: C) {
$this$with.f3($context_receiver_0 = $this$with, g = lf3)
$this$with.f3($context_receiver_0 = $this$with, g = local fun R.<anonymous>($context_receiver_0: C) {
$this$f3.<get-r>() /*~> Unit */
$this$with.<get-c>() /*~> Unit */
}
)
f4(_context_receiver_0 = $this$with, g = lf4)
f4(_context_receiver_0 = $this$with, g = local fun <anonymous>(_context_receiver_0: C) {
f4($context_receiver_0 = $this$with, g = lf4)
f4($context_receiver_0 = $this$with, g = local fun <anonymous>($context_receiver_0: C) {
$this$with.<get-c>() /*~> Unit */
}
)
@@ -78,52 +78,52 @@ FILE fqName:<root> fileName:/functionalType.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:f1 visibility:public modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, g:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f1 visibility:public modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, g:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function3, p2: P2 of kotlin.Function3, p3: P3 of kotlin.Function3): R of kotlin.Function3 [operator] declared in kotlin.Function3' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> declared in <root>.f1' type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f1' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f1' type=<root>.C origin=null
p2: GET_VAR '<this>: <root>.R declared in <root>.f1' type=<root>.R origin=null
p3: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Param' type=<root>.Param origin=null
FUN name:f2 visibility:public modality:FINAL <> (_context_receiver_0:<root>.C, g:@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f2 visibility:public modality:FINAL <> ($context_receiver_0:<root>.C, g:@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function2, p2: P2 of kotlin.Function2): R of kotlin.Function2 [operator] declared in kotlin.Function2' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> declared in <root>.f2' type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f2' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f2' type=<root>.C origin=null
p2: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Param' type=<root>.Param origin=null
FUN name:f3 visibility:public modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, g:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f3 visibility:public modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, g:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function2, p2: P2 of kotlin.Function2): R of kotlin.Function2 [operator] declared in kotlin.Function2' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> declared in <root>.f3' type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f3' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f3' type=<root>.C origin=null
p2: GET_VAR '<this>: <root>.R declared in <root>.f3' type=<root>.R origin=null
FUN name:f4 visibility:public modality:FINAL <> (_context_receiver_0:<root>.C, g:@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit>) returnType:kotlin.Unit
FUN name:f4 visibility:public modality:FINAL <> ($context_receiver_0:<root>.C, g:@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit>) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:g index:1 type:@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit>
BLOCK_BODY
CALL 'public abstract fun invoke (p1: P1 of kotlin.Function1): R of kotlin.Function1 [operator] declared in kotlin.Function1' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit> declared in <root>.f4' type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit> origin=VARIABLE_AS_FUNCTION
p1: GET_VAR '_context_receiver_0: <root>.C declared in <root>.f4' type=<root>.C origin=null
p1: GET_VAR '$context_receiver_0: <root>.C declared in <root>.f4' type=<root>.C origin=null
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
VAR name:lf1 type:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> [val]
FUN_EXPR type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$null type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<anonymous parameter 0> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
@@ -131,39 +131,39 @@ FILE fqName:<root> fileName:/functionalType.kt
$this: GET_VAR '$this$null: <root>.R declared in <root>.test.<anonymous>' type=<root>.R origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
VAR name:lf2 type:@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> [val]
FUN_EXPR type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<anonymous parameter 0> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
VAR name:lf3 type:@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> [val]
FUN_EXPR type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$null type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-r> (): kotlin.Int declared in <root>.R' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '$this$null: <root>.R declared in <root>.test.<anonymous>' type=<root>.R origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
VAR name:lf4 type:@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit> [val]
FUN_EXPR type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
<T>: <root>.C
<R>: kotlin.Unit
@@ -180,18 +180,18 @@ FILE fqName:<root> fileName:/functionalType.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.R
BLOCK_BODY
CALL 'public final fun f1 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f1 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf1: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> [val] declared in <root>.test' type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=null
CALL 'public final fun f1 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f1 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function3<<root>.C, <root>.R, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$f1 type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<anonymous parameter 0> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
@@ -200,32 +200,32 @@ FILE fqName:<root> fileName:/functionalType.kt
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f2 (_context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f2 ($context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf2: @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> [val] declared in <root>.test' type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=null
CALL 'public final fun f2 (_context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f2 ($context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.Param, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C, <anonymous parameter 0>:<root>.Param) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER UNDERSCORE_PARAMETER name:<anonymous parameter 0> index:1 type:<root>.Param
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f3 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f3 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf3: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> [val] declared in <root>.test' type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=null
CALL 'public final fun f3 (_context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun f3 ($context_receiver_0: <root>.C, g: @[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$receiver: GET_VAR '$this$with: <root>.R declared in <root>.test.<anonymous>.<anonymous>' type=<root>.R origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=@[ExtensionFunctionType] @[ContextFunctionTypeParams(count = '1')] kotlin.Function2<<root>.C, <root>.R, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, _context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.R, $context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:$this$f3 type:<root>.R
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-r> (): kotlin.Int declared in <root>.R' type=kotlin.Int origin=GET_PROPERTY
@@ -233,15 +233,15 @@ FILE fqName:<root> fileName:/functionalType.kt
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f4 (_context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f4 ($context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: GET_VAR 'val lf4: @[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit> [val] declared in <root>.test' type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit> origin=null
CALL 'public final fun f4 (_context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
CALL 'public final fun f4 ($context_receiver_0: <root>.C, g: @[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.C declared in <root>.test.<anonymous>' type=<root>.C origin=null
g: FUN_EXPR type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C) returnType:kotlin.Unit
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C) returnType:kotlin.Unit
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=GET_PROPERTY
@@ -33,62 +33,62 @@ class R {
}
fun R.f1(_context_receiver_0: C, g: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function3<C, R, Param, Unit>) {
g.invoke(p1 = _context_receiver_0, p2 = <this>, p3 = Param())
fun R.f1($context_receiver_0: C, g: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function3<C, R, Param, Unit>) {
g.invoke(p1 = $context_receiver_0, p2 = <this>, p3 = Param())
}
fun f2(_context_receiver_0: C, g: @ContextFunctionTypeParams(count = 1) Function2<C, Param, Unit>) {
g.invoke(p1 = _context_receiver_0, p2 = Param())
fun f2($context_receiver_0: C, g: @ContextFunctionTypeParams(count = 1) Function2<C, Param, Unit>) {
g.invoke(p1 = $context_receiver_0, p2 = Param())
}
fun R.f3(_context_receiver_0: C, g: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function2<C, R, Unit>) {
g.invoke(p1 = _context_receiver_0, p2 = <this>)
fun R.f3($context_receiver_0: C, g: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function2<C, R, Unit>) {
g.invoke(p1 = $context_receiver_0, p2 = <this>)
}
fun f4(_context_receiver_0: C, g: @ContextFunctionTypeParams(count = 1) Function1<C, Unit>) {
g.invoke(p1 = _context_receiver_0)
fun f4($context_receiver_0: C, g: @ContextFunctionTypeParams(count = 1) Function1<C, Unit>) {
g.invoke(p1 = $context_receiver_0)
}
fun test() {
val lf1: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function3<C, R, Param, Unit> = local fun R.<anonymous>(_context_receiver_0: C, <anonymous parameter 0>: Param) {
val lf1: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function3<C, R, Param, Unit> = local fun R.<anonymous>($context_receiver_0: C, <anonymous parameter 0>: Param) {
$this$null.<get-r>() /*~> Unit */
_context_receiver_0.<get-c>() /*~> Unit */
$context_receiver_0.<get-c>() /*~> Unit */
}
val lf2: @ContextFunctionTypeParams(count = 1) Function2<C, Param, Unit> = local fun <anonymous>(_context_receiver_0: C, <anonymous parameter 0>: Param) {
_context_receiver_0.<get-c>() /*~> Unit */
val lf2: @ContextFunctionTypeParams(count = 1) Function2<C, Param, Unit> = local fun <anonymous>($context_receiver_0: C, <anonymous parameter 0>: Param) {
$context_receiver_0.<get-c>() /*~> Unit */
}
val lf3: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function2<C, R, Unit> = local fun R.<anonymous>(_context_receiver_0: C) {
val lf3: @ExtensionFunctionType @ContextFunctionTypeParams(count = 1) Function2<C, R, Unit> = local fun R.<anonymous>($context_receiver_0: C) {
$this$null.<get-r>() /*~> Unit */
_context_receiver_0.<get-c>() /*~> Unit */
$context_receiver_0.<get-c>() /*~> Unit */
}
val lf4: @ContextFunctionTypeParams(count = 1) Function1<C, Unit> = local fun <anonymous>(_context_receiver_0: C) {
_context_receiver_0.<get-c>() /*~> Unit */
val lf4: @ContextFunctionTypeParams(count = 1) Function1<C, Unit> = local fun <anonymous>($context_receiver_0: C) {
$context_receiver_0.<get-c>() /*~> Unit */
}
with<C, Unit>(receiver = C(), block = local fun C.<anonymous>() {
with<R, Unit>(receiver = R(), block = local fun R.<anonymous>() {
$this$with.f1(_context_receiver_0 = $this$with, g = lf1)
$this$with.f1(_context_receiver_0 = $this$with, g = local fun R.<anonymous>(_context_receiver_0: C, <anonymous parameter 0>: Param) {
$this$with.f1($context_receiver_0 = $this$with, g = lf1)
$this$with.f1($context_receiver_0 = $this$with, g = local fun R.<anonymous>($context_receiver_0: C, <anonymous parameter 0>: Param) {
$this$f1.<get-r>() /*~> Unit */
$this$with.<get-c>() /*~> Unit */
}
)
f2(_context_receiver_0 = $this$with, g = lf2)
f2(_context_receiver_0 = $this$with, g = local fun <anonymous>(_context_receiver_0: C, <anonymous parameter 0>: Param) {
f2($context_receiver_0 = $this$with, g = lf2)
f2($context_receiver_0 = $this$with, g = local fun <anonymous>($context_receiver_0: C, <anonymous parameter 0>: Param) {
$this$with.<get-c>() /*~> Unit */
}
)
$this$with.f3(_context_receiver_0 = $this$with, g = lf3)
$this$with.f3(_context_receiver_0 = $this$with, g = local fun R.<anonymous>(_context_receiver_0: C) {
$this$with.f3($context_receiver_0 = $this$with, g = lf3)
$this$with.f3($context_receiver_0 = $this$with, g = local fun R.<anonymous>($context_receiver_0: C) {
$this$f3.<get-r>() /*~> Unit */
$this$with.<get-c>() /*~> Unit */
}
)
f4(_context_receiver_0 = $this$with, g = lf4)
f4(_context_receiver_0 = $this$with, g = local fun <anonymous>(_context_receiver_0: C) {
f4($context_receiver_0 = $this$with, g = lf4)
f4($context_receiver_0 = $this$with, g = local fun <anonymous>($context_receiver_0: C) {
$this$with.<get-c>() /*~> Unit */
}
)
@@ -3,13 +3,13 @@ FILE fqName:<root> fileName:/genericOuterClass.kt
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A<T of <root>.A>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:T of <root>.A visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:T of <root>.A) returnType:<root>.A<T of <root>.A> [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:T of <root>.A
CONSTRUCTOR visibility:public <> ($context_receiver_0:T of <root>.A) returnType:<root>.A<T of <root>.A> [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:T of <root>.A
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:T of <root>.A visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.A<T of <root>.A> declared in <root>.A' type=<root>.A<T of <root>.A> origin=null
value: GET_VAR '_context_receiver_0: T of <root>.A declared in <root>.A.<init>' type=T of <root>.A origin=null
value: GET_VAR '$context_receiver_0: T of <root>.A declared in <root>.A.<init>' type=T of <root>.A origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -28,13 +28,13 @@ FILE fqName:<root> fileName:/genericOuterClass.kt
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B<P of <root>.B>
TYPE_PARAMETER name:P index:0 variance: superTypes:[kotlin.Any?] reified:false
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.collections.Collection<P of <root>.B> visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:kotlin.collections.Collection<P of <root>.B>) returnType:<root>.B<P of <root>.B> [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.collections.Collection<P of <root>.B>
CONSTRUCTOR visibility:public <> ($context_receiver_0:kotlin.collections.Collection<P of <root>.B>) returnType:<root>.B<P of <root>.B> [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.collections.Collection<P of <root>.B>
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.collections.Collection<P of <root>.B> visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.B<P of <root>.B> declared in <root>.B' type=<root>.B<P of <root>.B> origin=null
value: GET_VAR '_context_receiver_0: kotlin.collections.Collection<P of <root>.B> declared in <root>.B.<init>' type=kotlin.collections.Collection<P of <root>.B> origin=null
value: GET_VAR '$context_receiver_0: kotlin.collections.Collection<P of <root>.B> declared in <root>.B.<init>' type=kotlin.collections.Collection<P of <root>.B> origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -53,13 +53,13 @@ FILE fqName:<root> fileName:/genericOuterClass.kt
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: T of <root>.A) [primary] declared in <root>.A' type=<root>.A<kotlin.Int> origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: T of <root>.A) [primary] declared in <root>.A' type=<root>.A<kotlin.Int> origin=null
<class: T>: kotlin.Int
_context_receiver_0: GET_VAR '<this>: kotlin.Int declared in <root>.foo' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '<this>: kotlin.Int declared in <root>.foo' type=kotlin.Int origin=null
FUN name:bar visibility:public modality:FINAL <> ($receiver:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<kotlin.Int>
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: kotlin.collections.Collection<P of <root>.B>) [primary] declared in <root>.B' type=<root>.B<kotlin.Int> origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: kotlin.collections.Collection<P of <root>.B>) [primary] declared in <root>.B' type=<root>.B<kotlin.Int> origin=null
<class: P>: kotlin.Int
_context_receiver_0: GET_VAR '<this>: kotlin.collections.Collection<kotlin.Int> declared in <root>.bar' type=kotlin.collections.Collection<kotlin.Int> origin=null
$context_receiver_0: GET_VAR '<this>: kotlin.collections.Collection<kotlin.Int> declared in <root>.bar' type=kotlin.collections.Collection<kotlin.Int> origin=null
@@ -1,8 +1,8 @@
class A<T : Any?> {
private /* final field */ val contextReceiverField0: T
constructor(_context_receiver_0: T) /* primary */ {
constructor($context_receiver_0: T) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -11,9 +11,9 @@ class A<T : Any?> {
class B<P : Any?> {
private /* final field */ val contextReceiverField0: Collection<P>
constructor(_context_receiver_0: Collection<P>) /* primary */ {
constructor($context_receiver_0: Collection<P>) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -21,9 +21,9 @@ class B<P : Any?> {
}
fun Int.foo() {
A<Int>(_context_receiver_0 = <this>) /*~> Unit */
A<Int>($context_receiver_0 = <this>) /*~> Unit */
}
fun Collection<Int>.bar() {
B<Int>(_context_receiver_0 = <this>) /*~> Unit */
B<Int>($context_receiver_0 = <this>) /*~> Unit */
}
@@ -192,14 +192,14 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
CLASS CLASS name:CounterIterator modality:FINAL visibility:public superTypes:[kotlin.collections.Iterator<kotlin.Int>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.CounterIterator
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.CounterConfig visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:<root>.CounterConfig, counter:<root>.Counter) returnType:<root>.CounterIterator [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.CounterConfig
CONSTRUCTOR visibility:public <> ($context_receiver_0:<root>.CounterConfig, counter:<root>.Counter) returnType:<root>.CounterIterator [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.CounterConfig
VALUE_PARAMETER name:counter index:1 type:<root>.Counter
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.CounterConfig visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.CounterIterator declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
value: GET_VAR '_context_receiver_0: <root>.CounterConfig declared in <root>.CounterIterator.<init>' type=<root>.CounterConfig origin=null
value: GET_VAR '$context_receiver_0: <root>.CounterConfig declared in <root>.CounterIterator.<init>' type=<root>.CounterConfig origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:CounterIterator modality:FINAL visibility:public superTypes:[kotlin.collections.Iterator<kotlin.Int>]'
PROPERTY name:counter visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:counter type:<root>.Counter visibility:private [final]
@@ -256,23 +256,23 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
overridden:
public open fun toString (): kotlin.String [fake_override] declared in kotlin.collections.Iterator
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:iterator visibility:public modality:FINAL <> ($receiver:<root>.Counter, _context_receiver_0:<root>.CounterConfig) returnType:<root>.CounterIterator [operator]
FUN name:iterator visibility:public modality:FINAL <> ($receiver:<root>.Counter, $context_receiver_0:<root>.CounterConfig) returnType:<root>.CounterIterator [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Counter
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.CounterConfig
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.CounterConfig
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun iterator (_context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun iterator ($context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>'
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=<root>.CounterIterator origin=null
<T>: <root>.CounterConfig
<R>: <root>.CounterIterator
receiver: GET_VAR '_context_receiver_0: <root>.CounterConfig declared in <root>.iterator' type=<root>.CounterConfig origin=null
receiver: GET_VAR '$context_receiver_0: <root>.CounterConfig declared in <root>.iterator' type=<root>.CounterConfig origin=null
block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.CounterConfig, <root>.CounterIterator> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.CounterConfig) returnType:<root>.CounterIterator
$receiver: VALUE_PARAMETER name:$this$with type:<root>.CounterConfig
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): <root>.CounterIterator declared in <root>.iterator'
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: <root>.CounterConfig, counter: <root>.Counter) [primary] declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.iterator.<anonymous>' type=<root>.CounterConfig origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: <root>.CounterConfig, counter: <root>.Counter) [primary] declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.iterator.<anonymous>' type=<root>.CounterConfig origin=null
counter: GET_VAR '<this>: <root>.Counter declared in <root>.iterator' type=<root>.Counter origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
BLOCK_BODY
@@ -288,9 +288,9 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
BLOCK_BODY
BLOCK type=kotlin.Unit origin=FOR_LOOP
VAR FOR_LOOP_ITERATOR name:tmp_4 type:<root>.CounterIterator [val]
CALL 'public final fun iterator (_context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>' type=<root>.CounterIterator origin=null
CALL 'public final fun iterator ($context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>' type=<root>.CounterIterator origin=null
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Counter' type=<root>.Counter origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.box.<anonymous>' type=<root>.CounterConfig origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.box.<anonymous>' type=<root>.CounterConfig origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public open fun hasNext (): kotlin.Boolean [operator] declared in <root>.CounterIterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val tmp_4: <root>.CounterIterator [val] declared in <root>.box.<anonymous>' type=<root>.CounterIterator origin=null
@@ -87,9 +87,9 @@ data class CounterConfig {
class CounterIterator : Iterator<Int> {
private /* final field */ val contextReceiverField0: CounterConfig
constructor(_context_receiver_0: CounterConfig, counter: Counter) /* primary */ {
constructor($context_receiver_0: CounterConfig, counter: Counter) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -113,9 +113,9 @@ class CounterIterator : Iterator<Int> {
}
operator fun Counter.iterator(_context_receiver_0: CounterConfig): CounterIterator {
return with<CounterConfig, CounterIterator>(receiver = _context_receiver_0, block = local fun CounterConfig.<anonymous>(): CounterIterator {
return CounterIterator(_context_receiver_0 = $this$with, counter = <this>)
operator fun Counter.iterator($context_receiver_0: CounterConfig): CounterIterator {
return with<CounterConfig, CounterIterator>(receiver = $context_receiver_0, block = local fun CounterConfig.<anonymous>(): CounterIterator {
return CounterIterator($context_receiver_0 = $this$with, counter = <this>)
}
)
}
@@ -124,7 +124,7 @@ fun box(): String {
var result: Int = 0
with<CounterConfig, Unit>(receiver = CounterConfig(), block = local fun CounterConfig.<anonymous>() {
{ // BLOCK
val <iterator>: CounterIterator = Counter().iterator(_context_receiver_0 = $this$with)
val <iterator>: CounterIterator = Counter().iterator($context_receiver_0 = $this$with)
while (<iterator>.hasNext()) { // BLOCK
val i: Int = <iterator>.next()
{ // BLOCK
@@ -192,14 +192,14 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
CLASS CLASS name:CounterIterator modality:FINAL visibility:public superTypes:[kotlin.collections.Iterator<kotlin.Int>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.CounterIterator
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.CounterConfig visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:<root>.CounterConfig, counter:<root>.Counter) returnType:<root>.CounterIterator [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.CounterConfig
CONSTRUCTOR visibility:public <> ($context_receiver_0:<root>.CounterConfig, counter:<root>.Counter) returnType:<root>.CounterIterator [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.CounterConfig
VALUE_PARAMETER name:counter index:1 type:<root>.Counter
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.CounterConfig visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.CounterIterator declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
value: GET_VAR '_context_receiver_0: <root>.CounterConfig declared in <root>.CounterIterator.<init>' type=<root>.CounterConfig origin=null
value: GET_VAR '$context_receiver_0: <root>.CounterConfig declared in <root>.CounterIterator.<init>' type=<root>.CounterConfig origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:CounterIterator modality:FINAL visibility:public superTypes:[kotlin.collections.Iterator<kotlin.Int>]'
PROPERTY name:counter visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:counter type:<root>.Counter visibility:private [final]
@@ -257,23 +257,23 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
overridden:
public open fun toString (): kotlin.String [fake_override] declared in kotlin.collections.Iterator
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:iterator visibility:public modality:FINAL <> ($receiver:<root>.Counter, _context_receiver_0:<root>.CounterConfig) returnType:<root>.CounterIterator [operator]
FUN name:iterator visibility:public modality:FINAL <> ($receiver:<root>.Counter, $context_receiver_0:<root>.CounterConfig) returnType:<root>.CounterIterator [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Counter
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.CounterConfig
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.CounterConfig
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun iterator (_context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>'
RETURN type=kotlin.Nothing from='public final fun iterator ($context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>'
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=<root>.CounterIterator origin=null
<T>: <root>.CounterConfig
<R>: <root>.CounterIterator
receiver: GET_VAR '_context_receiver_0: <root>.CounterConfig declared in <root>.iterator' type=<root>.CounterConfig origin=null
receiver: GET_VAR '$context_receiver_0: <root>.CounterConfig declared in <root>.iterator' type=<root>.CounterConfig origin=null
block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.CounterConfig, <root>.CounterIterator> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.CounterConfig) returnType:<root>.CounterIterator
$receiver: VALUE_PARAMETER name:$this$with type:<root>.CounterConfig
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): <root>.CounterIterator declared in <root>.iterator'
CONSTRUCTOR_CALL 'public constructor <init> (_context_receiver_0: <root>.CounterConfig, counter: <root>.Counter) [primary] declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.iterator.<anonymous>' type=<root>.CounterConfig origin=null
CONSTRUCTOR_CALL 'public constructor <init> ($context_receiver_0: <root>.CounterConfig, counter: <root>.Counter) [primary] declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.iterator.<anonymous>' type=<root>.CounterConfig origin=null
counter: GET_VAR '<this>: <root>.Counter declared in <root>.iterator' type=<root>.Counter origin=null
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
BLOCK_BODY
@@ -289,9 +289,9 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
BLOCK_BODY
BLOCK type=kotlin.Unit origin=FOR_LOOP
VAR FOR_LOOP_ITERATOR name:tmp_4 type:<root>.CounterIterator [val]
CALL 'public final fun iterator (_context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>' type=<root>.CounterIterator origin=FOR_LOOP_ITERATOR
CALL 'public final fun iterator ($context_receiver_0: <root>.CounterConfig): <root>.CounterIterator [operator] declared in <root>' type=<root>.CounterIterator origin=FOR_LOOP_ITERATOR
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Counter' type=<root>.Counter origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.box.<anonymous>' type=<root>.CounterConfig origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.CounterConfig declared in <root>.box.<anonymous>' type=<root>.CounterConfig origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public open fun hasNext (): kotlin.Boolean [operator] declared in <root>.CounterIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
$this: GET_VAR 'val tmp_4: <root>.CounterIterator [val] declared in <root>.box.<anonymous>' type=<root>.CounterIterator origin=null
@@ -87,9 +87,9 @@ data class CounterConfig {
class CounterIterator : Iterator<Int> {
private /* final field */ val contextReceiverField0: CounterConfig
constructor(_context_receiver_0: CounterConfig, counter: Counter) /* primary */ {
constructor($context_receiver_0: CounterConfig, counter: Counter) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField0 = $context_receiver_0
/* <init>() */
}
@@ -115,9 +115,9 @@ class CounterIterator : Iterator<Int> {
}
operator fun Counter.iterator(_context_receiver_0: CounterConfig): CounterIterator {
return with<CounterConfig, CounterIterator>(receiver = _context_receiver_0, block = local fun CounterConfig.<anonymous>(): CounterIterator {
return CounterIterator(_context_receiver_0 = $this$with, counter = <this>)
operator fun Counter.iterator($context_receiver_0: CounterConfig): CounterIterator {
return with<CounterConfig, CounterIterator>(receiver = $context_receiver_0, block = local fun CounterConfig.<anonymous>(): CounterIterator {
return CounterIterator($context_receiver_0 = $this$with, counter = <this>)
}
)
}
@@ -126,7 +126,7 @@ fun box(): String {
var result: Int = 0
with<CounterConfig, Unit>(receiver = CounterConfig(), block = local fun CounterConfig.<anonymous>() {
{ // BLOCK
val tmp0_iterator: CounterIterator = Counter().iterator(_context_receiver_0 = $this$with)
val tmp0_iterator: CounterIterator = Counter().iterator($context_receiver_0 = $this$with)
while (tmp0_iterator.hasNext()) { // BLOCK
val i: Int = tmp0_iterator.next()
{ // BLOCK
@@ -3,17 +3,17 @@ FILE fqName:<root> fileName:/kt52791.kt
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Unit visibility:private [final]
FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField1 type:kotlin.Int visibility:private [final]
CONSTRUCTOR visibility:public <> (_context_receiver_0:kotlin.Unit, _context_receiver_1:kotlin.Int) returnType:<root>.MyClass [primary]
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Unit
VALUE_PARAMETER name:_context_receiver_1 index:1 type:kotlin.Int
CONSTRUCTOR visibility:public <> ($context_receiver_0:kotlin.Unit, $context_receiver_1:kotlin.Int) returnType:<root>.MyClass [primary]
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Unit
VALUE_PARAMETER name:$context_receiver_1 index:1 type:kotlin.Int
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Unit visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.MyClass declared in <root>.MyClass' type=<root>.MyClass origin=null
value: GET_VAR '_context_receiver_0: kotlin.Unit declared in <root>.MyClass.<init>' type=kotlin.Unit origin=null
value: GET_VAR '$context_receiver_0: kotlin.Unit declared in <root>.MyClass.<init>' type=kotlin.Unit origin=null
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField1 type:kotlin.Int visibility:private [final]' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.MyClass declared in <root>.MyClass' type=<root>.MyClass origin=null
value: GET_VAR '_context_receiver_1: kotlin.Int declared in <root>.MyClass.<init>' type=kotlin.Int origin=null
value: GET_VAR '$context_receiver_1: kotlin.Int declared in <root>.MyClass.<init>' type=kotlin.Int origin=null
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass modality:FINAL visibility:public superTypes:[kotlin.Any]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -1,10 +1,10 @@
class MyClass {
private /* final field */ val contextReceiverField0: Unit
private /* final field */ val contextReceiverField1: Int
constructor(_context_receiver_0: Unit, _context_receiver_1: Int) /* primary */ {
constructor($context_receiver_0: Unit, $context_receiver_1: Int) /* primary */ {
super/*Any*/()
<this>.#contextReceiverField0 = _context_receiver_0
<this>.#contextReceiverField1 = _context_receiver_1
<this>.#contextReceiverField0 = $context_receiver_0
<this>.#contextReceiverField1 = $context_receiver_1
/* <init>() */
}
@@ -15,22 +15,22 @@ FILE fqName:<root> fileName:/lazy.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:test1 visibility:public modality:FINAL <> (_context_receiver_0:<root>.Lazy<kotlin.Int>, _context_receiver_1:<root>.Lazy<kotlin.CharSequence>) returnType:kotlin.Unit
FUN name:test1 visibility:public modality:FINAL <> ($context_receiver_0:<root>.Lazy<kotlin.Int>, $context_receiver_1:<root>.Lazy<kotlin.CharSequence>) returnType:kotlin.Unit
contextReceiverParametersCount: 2
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Lazy<kotlin.Int>
VALUE_PARAMETER name:_context_receiver_1 index:1 type:<root>.Lazy<kotlin.CharSequence>
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Lazy<kotlin.Int>
VALUE_PARAMETER name:$context_receiver_1 index:1 type:<root>.Lazy<kotlin.CharSequence>
BLOCK_BODY
FUN name:test2 visibility:public modality:FINAL <T> ($receiver:<root>.Lazy<kotlin.Int>, _context_receiver_0:<root>.Lazy<T of <root>.test2>) returnType:kotlin.Unit
FUN name:test2 visibility:public modality:FINAL <T> ($receiver:<root>.Lazy<kotlin.Int>, $context_receiver_0:<root>.Lazy<T of <root>.test2>) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Lazy<kotlin.Int>
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Lazy<T of <root>.test2>
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Lazy<T of <root>.test2>
BLOCK_BODY
FUN name:test3 visibility:public modality:FINAL <T> ($receiver:<root>.Lazy<kotlin.Int>, _context_receiver_0:<root>.Lazy<<root>.Lazy<T of <root>.test3>>) returnType:kotlin.Unit
FUN name:test3 visibility:public modality:FINAL <T> ($receiver:<root>.Lazy<kotlin.Int>, $context_receiver_0:<root>.Lazy<<root>.Lazy<T of <root>.test3>>) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Lazy<kotlin.Int>
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Lazy<<root>.Lazy<T of <root>.test3>>
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Lazy<<root>.Lazy<T of <root>.test3>>
BLOCK_BODY
FUN name:f visibility:public modality:FINAL <T> (lazy1:<root>.Lazy<kotlin.Int>, lazy2:<root>.Lazy<kotlin.CharSequence>, lazyT:<root>.Lazy<T of <root>.f>, lazyLazyT:<root>.Lazy<<root>.Lazy<T of <root>.f>>) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
@@ -55,13 +55,13 @@ FILE fqName:<root> fileName:/lazy.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.Lazy<kotlin.CharSequence>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.Lazy<kotlin.CharSequence>
BLOCK_BODY
CALL 'public final fun test1 (_context_receiver_0: <root>.Lazy<kotlin.Int>, _context_receiver_1: <root>.Lazy<kotlin.CharSequence>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_1: GET_VAR '$this$with: <root>.Lazy<kotlin.CharSequence> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.CharSequence> origin=null
CALL 'public final fun test2 <T> (_context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun test1 ($context_receiver_0: <root>.Lazy<kotlin.Int>, $context_receiver_1: <root>.Lazy<kotlin.CharSequence>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
$context_receiver_1: GET_VAR '$this$with: <root>.Lazy<kotlin.CharSequence> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.CharSequence> origin=null
CALL 'public final fun test2 <T> ($context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: kotlin.CharSequence
$receiver: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.CharSequence> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.CharSequence> origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.CharSequence> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.CharSequence> origin=null
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
<T>: <root>.Lazy<kotlin.CharSequence>
<R>: kotlin.Unit
@@ -78,13 +78,13 @@ FILE fqName:<root> fileName:/lazy.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.Lazy<kotlin.Int>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.Lazy<kotlin.Int>
BLOCK_BODY
CALL 'public final fun test1 (_context_receiver_0: <root>.Lazy<kotlin.Int>, _context_receiver_1: <root>.Lazy<kotlin.CharSequence>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_1: GET_VAR '$this$with: <root>.Lazy<kotlin.CharSequence> declared in <root>.f.<anonymous>' type=<root>.Lazy<kotlin.CharSequence> origin=null
CALL 'public final fun test2 <T> (_context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun test1 ($context_receiver_0: <root>.Lazy<kotlin.Int>, $context_receiver_1: <root>.Lazy<kotlin.CharSequence>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
$context_receiver_1: GET_VAR '$this$with: <root>.Lazy<kotlin.CharSequence> declared in <root>.f.<anonymous>' type=<root>.Lazy<kotlin.CharSequence> origin=null
CALL 'public final fun test2 <T> ($context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
<T>: <root>.Lazy<T of <root>.f>
<R>: kotlin.Unit
@@ -101,10 +101,10 @@ FILE fqName:<root> fileName:/lazy.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.Lazy<kotlin.Int>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.Lazy<kotlin.Int>
BLOCK_BODY
CALL 'public final fun test2 <T> (_context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun test2 <T> ($context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
<T>: <root>.Lazy<<root>.Lazy<T of <root>.f>>
<R>: kotlin.Unit
@@ -121,14 +121,14 @@ FILE fqName:<root> fileName:/lazy.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.Lazy<kotlin.Int>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.Lazy<kotlin.Int>
BLOCK_BODY
CALL 'public final fun test2 <T> (_context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun test2 <T> ($context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: kotlin.Int
$receiver: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
CALL 'public final fun test3 <T> (_context_receiver_0: <root>.Lazy<<root>.Lazy<T of <root>.test3>>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
CALL 'public final fun test3 <T> ($context_receiver_0: <root>.Lazy<<root>.Lazy<T of <root>.test3>>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: T of <root>.f
$receiver: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<<root>.Lazy<T of <root>.f>> declared in <root>.f.<anonymous>' type=<root>.Lazy<<root>.Lazy<T of <root>.f>> origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<<root>.Lazy<T of <root>.f>> declared in <root>.f.<anonymous>' type=<root>.Lazy<<root>.Lazy<T of <root>.f>> origin=null
CALL 'public final fun with <T, R> (receiver: T of kotlin.StandardKt.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.StandardKt.with, R of kotlin.StandardKt.with>): R of kotlin.StandardKt.with [inline] declared in kotlin.StandardKt' type=kotlin.Unit origin=null
<T>: <root>.Lazy<kotlin.Int>
<R>: kotlin.Unit
@@ -145,11 +145,11 @@ FILE fqName:<root> fileName:/lazy.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.Lazy<<root>.Lazy<T of <root>.f>>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:<root>.Lazy<<root>.Lazy<T of <root>.f>>
BLOCK_BODY
CALL 'public final fun test2 <T> (_context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun test2 <T> ($context_receiver_0: <root>.Lazy<T of <root>.test2>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: <root>.Lazy<T of <root>.f>
$receiver: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<<root>.Lazy<T of <root>.f>> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<<root>.Lazy<T of <root>.f>> origin=null
CALL 'public final fun test3 <T> (_context_receiver_0: <root>.Lazy<<root>.Lazy<T of <root>.test3>>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<<root>.Lazy<T of <root>.f>> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<<root>.Lazy<T of <root>.f>> origin=null
CALL 'public final fun test3 <T> ($context_receiver_0: <root>.Lazy<<root>.Lazy<T of <root>.test3>>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: T of <root>.f
$receiver: GET_VAR '$this$with: <root>.Lazy<kotlin.Int> declared in <root>.f.<anonymous>' type=<root>.Lazy<kotlin.Int> origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Lazy<<root>.Lazy<T of <root>.f>> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<<root>.Lazy<T of <root>.f>> origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Lazy<<root>.Lazy<T of <root>.f>> declared in <root>.f.<anonymous>.<anonymous>' type=<root>.Lazy<<root>.Lazy<T of <root>.f>> origin=null
@@ -2,51 +2,51 @@ interface Lazy<T : Any?> {
}
fun test1(_context_receiver_0: Lazy<Int>, _context_receiver_1: Lazy<CharSequence>) {
fun test1($context_receiver_0: Lazy<Int>, $context_receiver_1: Lazy<CharSequence>) {
}
fun <T : Any?> Lazy<Int>.test2(_context_receiver_0: Lazy<T>) {
fun <T : Any?> Lazy<Int>.test2($context_receiver_0: Lazy<T>) {
}
fun <T : Any?> Lazy<Int>.test3(_context_receiver_0: Lazy<Lazy<T>>) {
fun <T : Any?> Lazy<Int>.test3($context_receiver_0: Lazy<Lazy<T>>) {
}
fun <T : Any?> f(lazy1: Lazy<Int>, lazy2: Lazy<CharSequence>, lazyT: Lazy<T>, lazyLazyT: Lazy<Lazy<T>>) {
with<Lazy<Int>, Unit>(receiver = lazy1, block = local fun Lazy<Int>.<anonymous>() {
with<Lazy<CharSequence>, Unit>(receiver = lazy2, block = local fun Lazy<CharSequence>.<anonymous>() {
test1(_context_receiver_0 = $this$with, _context_receiver_1 = $this$with)
$this$with.test2<CharSequence>(_context_receiver_0 = $this$with)
test1($context_receiver_0 = $this$with, $context_receiver_1 = $this$with)
$this$with.test2<CharSequence>($context_receiver_0 = $this$with)
}
)
}
)
with<Lazy<CharSequence>, Unit>(receiver = lazy2, block = local fun Lazy<CharSequence>.<anonymous>() {
with<Lazy<Int>, Unit>(receiver = lazy1, block = local fun Lazy<Int>.<anonymous>() {
test1(_context_receiver_0 = $this$with, _context_receiver_1 = $this$with)
$this$with.test2<Int>(_context_receiver_0 = $this$with)
test1($context_receiver_0 = $this$with, $context_receiver_1 = $this$with)
$this$with.test2<Int>($context_receiver_0 = $this$with)
}
)
}
)
with<Lazy<T>, Unit>(receiver = lazyT, block = local fun Lazy<T>.<anonymous>() {
with<Lazy<Int>, Unit>(receiver = lazy1, block = local fun Lazy<Int>.<anonymous>() {
$this$with.test2<Int>(_context_receiver_0 = $this$with)
$this$with.test2<Int>($context_receiver_0 = $this$with)
}
)
}
)
with<Lazy<Lazy<T>>, Unit>(receiver = lazyLazyT, block = local fun Lazy<Lazy<T>>.<anonymous>() {
with<Lazy<Int>, Unit>(receiver = lazy1, block = local fun Lazy<Int>.<anonymous>() {
$this$with.test2<Int>(_context_receiver_0 = $this$with)
$this$with.test3<T>(_context_receiver_0 = $this$with)
$this$with.test2<Int>($context_receiver_0 = $this$with)
$this$with.test3<T>($context_receiver_0 = $this$with)
}
)
}
)
with<Lazy<Int>, Unit>(receiver = lazy1, block = local fun Lazy<Int>.<anonymous>() {
with<Lazy<Lazy<T>>, Unit>(receiver = lazyLazyT, block = local fun Lazy<Lazy<T>>.<anonymous>() {
$this$with.test2<Lazy<T>>(_context_receiver_0 = $this$with)
$this$with.test3<T>(_context_receiver_0 = $this$with)
$this$with.test2<Lazy<T>>($context_receiver_0 = $this$with)
$this$with.test3<T>($context_receiver_0 = $this$with)
}
)
}
@@ -18,11 +18,11 @@ FILE fqName:<root> fileName:/overloadPriority.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:f visibility:public modality:FINAL <> (_context_receiver_0:<root>.Context) returnType:kotlin.String
FUN name:f visibility:public modality:FINAL <> ($context_receiver_0:<root>.Context) returnType:kotlin.String
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.Context
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.Context
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun f (_context_receiver_0: <root>.Context): kotlin.String declared in <root>'
RETURN type=kotlin.Nothing from='public final fun f ($context_receiver_0: <root>.Context): kotlin.String declared in <root>'
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
FUN name:f visibility:public modality:FINAL <> () returnType:kotlin.Any
BLOCK_BODY
@@ -41,5 +41,5 @@ FILE fqName:<root> fileName:/overloadPriority.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.test'
CALL 'public open fun <get-length> (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=GET_PROPERTY
$this: CALL 'public final fun f (_context_receiver_0: <root>.Context): kotlin.String declared in <root>' type=kotlin.String origin=null
_context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.test.<anonymous>' type=<root>.Context origin=null
$this: CALL 'public final fun f ($context_receiver_0: <root>.Context): kotlin.String declared in <root>' type=kotlin.String origin=null
$context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.test.<anonymous>' type=<root>.Context origin=null
@@ -7,7 +7,7 @@ class Context {
}
fun f(_context_receiver_0: Context): String {
fun f($context_receiver_0: Context): String {
return TODO()
}
@@ -17,7 +17,7 @@ fun f(): Any {
fun test() {
with<Context, Int>(receiver = Context(), block = local fun Context.<anonymous>(): Int {
return f(_context_receiver_0 = $this$with).<get-length>()
return f($context_receiver_0 = $this$with).<get-length>()
}
) /*~> Unit */
}
@@ -1,20 +1,20 @@
FILE fqName:<root> fileName:/overloading.kt
FUN name:foo visibility:public modality:FINAL <> (_context_receiver_0:kotlin.Int, _context_receiver_1:kotlin.String) returnType:kotlin.Int
FUN name:foo visibility:public modality:FINAL <> ($context_receiver_0:kotlin.Int, $context_receiver_1:kotlin.String) returnType:kotlin.Int
contextReceiverParametersCount: 2
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:_context_receiver_1 index:1 type:kotlin.String
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_1 index:1 type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo (_context_receiver_0: kotlin.Int, _context_receiver_1: kotlin.String): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun foo ($context_receiver_0: kotlin.Int, $context_receiver_1: kotlin.String): kotlin.Int declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.foo' type=kotlin.Int origin=null
$this: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.foo' type=kotlin.Int origin=null
other: CONST Int type=kotlin.Int value=42
FUN name:foo visibility:public modality:FINAL <> (_context_receiver_0:kotlin.Int) returnType:kotlin.Int
FUN name:foo visibility:public modality:FINAL <> ($context_receiver_0:kotlin.Int) returnType:kotlin.Int
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo (_context_receiver_0: kotlin.Int): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun foo ($context_receiver_0: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.foo' type=kotlin.Int origin=null
$this: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.foo' type=kotlin.Int origin=null
other: CONST Int type=kotlin.Int value=42
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
@@ -28,5 +28,5 @@ FILE fqName:<root> fileName:/overloading.kt
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.test'
CALL 'public final fun foo (_context_receiver_0: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.test.<anonymous>' type=kotlin.Int origin=null
CALL 'public final fun foo ($context_receiver_0: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.test.<anonymous>' type=kotlin.Int origin=null
@@ -1,14 +1,14 @@
fun foo(_context_receiver_0: Int, _context_receiver_1: String): Int {
return _context_receiver_0.plus(other = 42)
fun foo($context_receiver_0: Int, $context_receiver_1: String): Int {
return $context_receiver_0.plus(other = 42)
}
fun foo(_context_receiver_0: Int): Int {
return _context_receiver_0.plus(other = 42)
fun foo($context_receiver_0: Int): Int {
return $context_receiver_0.plus(other = 42)
}
fun test() {
with<Int, Int>(receiver = 42, block = local fun Int.<anonymous>(): Int {
return foo(_context_receiver_0 = $this$with)
return foo($context_receiver_0 = $this$with)
}
) /*~> Unit */
}
@@ -41,10 +41,10 @@ FILE fqName:<root> fileName:/passingLambdaToContextualParam.kt
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CALL 'public final fun contextual (f: kotlin.Function1<<root>.C, kotlin.String>): kotlin.String declared in <root>' type=kotlin.String origin=null
f: FUN_EXPR type=kotlin.Function1<<root>.C, kotlin.String> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C) returnType:kotlin.String
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C) returnType:kotlin.String
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (_context_receiver_0: <root>.C): kotlin.String declared in <root>.box'
RETURN type=kotlin.Nothing from='local final fun <anonymous> ($context_receiver_0: <root>.C): kotlin.String declared in <root>.box'
CALL 'public final fun <get-result> (): kotlin.String declared in <root>.C' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.box.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.box.<anonymous>' type=<root>.C origin=null
@@ -16,8 +16,8 @@ fun contextual(f: Function1<C, String>): String {
}
fun box(): String {
return contextual(f = local fun <anonymous>(_context_receiver_0: C): String {
return _context_receiver_0.<get-result>()
return contextual(f = local fun <anonymous>($context_receiver_0: C): String {
return $context_receiver_0.<get-result>()
}
)
}
@@ -41,10 +41,10 @@ FILE fqName:<root> fileName:/passingLambdaToContextualParam.kt
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CALL 'public final fun contextual (f: @[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.String>): kotlin.String declared in <root>' type=kotlin.String origin=null
f: FUN_EXPR type=@[ContextFunctionTypeParams(count = '1')] kotlin.Function1<<root>.C, kotlin.String> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (_context_receiver_0:<root>.C) returnType:kotlin.String
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($context_receiver_0:<root>.C) returnType:kotlin.String
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.C
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (_context_receiver_0: <root>.C): kotlin.String declared in <root>.box'
RETURN type=kotlin.Nothing from='local final fun <anonymous> ($context_receiver_0: <root>.C): kotlin.String declared in <root>.box'
CALL 'public final fun <get-result> (): kotlin.String declared in <root>.C' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.C declared in <root>.box.<anonymous>' type=<root>.C origin=null
$this: GET_VAR '$context_receiver_0: <root>.C declared in <root>.box.<anonymous>' type=<root>.C origin=null
@@ -16,8 +16,8 @@ fun contextual(f: @ContextFunctionTypeParams(count = 1) Function1<C, String>): S
}
fun box(): String {
return contextual(f = local fun <anonymous>(_context_receiver_0: C): String {
return _context_receiver_0.<get-result>()
return contextual(f = local fun <anonymous>($context_receiver_0: C): String {
return $context_receiver_0.<get-result>()
}
)
}
@@ -37,13 +37,13 @@ FILE fqName:<root> fileName:/plusMatrix.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:plus visibility:public modality:FINAL <> ($receiver:<root>.Matrix, _context_receiver_0:<root>.NumberOperations, other:<root>.Matrix) returnType:<root>.Matrix
FUN name:plus visibility:public modality:FINAL <> ($receiver:<root>.Matrix, $context_receiver_0:<root>.NumberOperations, other:<root>.Matrix) returnType:<root>.Matrix
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Matrix
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.NumberOperations
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.NumberOperations
VALUE_PARAMETER name:other index:1 type:<root>.Matrix
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun plus (_context_receiver_0: <root>.NumberOperations, other: <root>.Matrix): <root>.Matrix declared in <root>'
RETURN type=kotlin.Nothing from='public final fun plus ($context_receiver_0: <root>.NumberOperations, other: <root>.Matrix): <root>.Matrix declared in <root>'
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
FUN name:plusMatrix visibility:public modality:FINAL <> ($receiver:<root>.NumberOperations, m1:<root>.Matrix, m2:<root>.Matrix) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:<root>.NumberOperations
@@ -51,12 +51,12 @@ FILE fqName:<root> fileName:/plusMatrix.kt
VALUE_PARAMETER name:m2 index:1 type:<root>.Matrix
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun plus (_context_receiver_0: <root>.NumberOperations, other: <root>.Matrix): <root>.Matrix declared in <root>' type=<root>.Matrix origin=null
CALL 'public final fun plus ($context_receiver_0: <root>.NumberOperations, other: <root>.Matrix): <root>.Matrix declared in <root>' type=<root>.Matrix origin=null
$receiver: GET_VAR 'm1: <root>.Matrix declared in <root>.plusMatrix' type=<root>.Matrix origin=null
_context_receiver_0: GET_VAR '<this>: <root>.NumberOperations declared in <root>.plusMatrix' type=<root>.NumberOperations origin=null
$context_receiver_0: GET_VAR '<this>: <root>.NumberOperations declared in <root>.plusMatrix' type=<root>.NumberOperations origin=null
other: GET_VAR 'm2: <root>.Matrix declared in <root>.plusMatrix' type=<root>.Matrix origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun plus (_context_receiver_0: <root>.NumberOperations, other: <root>.Matrix): <root>.Matrix declared in <root>' type=<root>.Matrix origin=null
CALL 'public final fun plus ($context_receiver_0: <root>.NumberOperations, other: <root>.Matrix): <root>.Matrix declared in <root>' type=<root>.Matrix origin=null
$receiver: GET_VAR 'm2: <root>.Matrix declared in <root>.plusMatrix' type=<root>.Matrix origin=null
_context_receiver_0: GET_VAR '<this>: <root>.NumberOperations declared in <root>.plusMatrix' type=<root>.NumberOperations origin=null
$context_receiver_0: GET_VAR '<this>: <root>.NumberOperations declared in <root>.plusMatrix' type=<root>.NumberOperations origin=null
other: GET_VAR 'm1: <root>.Matrix declared in <root>.plusMatrix' type=<root>.Matrix origin=null
@@ -12,11 +12,11 @@ class Matrix {
}
fun Matrix.plus(_context_receiver_0: NumberOperations, other: Matrix): Matrix {
fun Matrix.plus($context_receiver_0: NumberOperations, other: Matrix): Matrix {
return TODO()
}
fun NumberOperations.plusMatrix(m1: Matrix, m2: Matrix) {
m1.plus(_context_receiver_0 = <this>, other = m2) /*~> Unit */
m2.plus(_context_receiver_0 = <this>, other = m1) /*~> Unit */
m1.plus($context_receiver_0 = <this>, other = m2) /*~> Unit */
m2.plus($context_receiver_0 = <this>, other = m1) /*~> Unit */
}
@@ -34,15 +34,15 @@ FILE fqName:<root> fileName:/property.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:c visibility:public modality:FINAL [val]
FUN name:<get-c> visibility:public modality:FINAL <> (_context_receiver_0:<root>.A, _context_receiver_1:<root>.B) returnType:kotlin.Int
FUN name:<get-c> visibility:public modality:FINAL <> ($context_receiver_0:<root>.A, $context_receiver_1:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:c visibility:public modality:FINAL [val]
contextReceiverParametersCount: 2
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.A
VALUE_PARAMETER name:_context_receiver_1 index:1 type:<root>.B
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.A
VALUE_PARAMETER name:$context_receiver_1 index:1 type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-c> (_context_receiver_0: <root>.A, _context_receiver_1: <root>.B): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-c> ($context_receiver_0: <root>.A, $context_receiver_1: <root>.B): kotlin.Int declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public abstract fun a (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_0: <root>.A declared in <root>.<get-c>' type=<root>.A origin=null
$this: GET_VAR '$context_receiver_0: <root>.A declared in <root>.<get-c>' type=<root>.A origin=null
other: CALL 'public abstract fun b (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR '_context_receiver_1: <root>.B declared in <root>.<get-c>' type=<root>.B origin=null
$this: GET_VAR '$context_receiver_1: <root>.B declared in <root>.<get-c>' type=<root>.B origin=null
@@ -9,6 +9,6 @@ interface B {
}
val c: Int
get(_context_receiver_0: A, _context_receiver_1: B): Int {
return _context_receiver_0.a().plus(other = _context_receiver_1.b())
get($context_receiver_0: A, $context_receiver_1: B): Int {
return $context_receiver_0.a().plus(other = $context_receiver_1.b())
}
@@ -93,43 +93,43 @@ FILE fqName:<root> fileName:/thisWithCustomLabel.kt
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:f visibility:public modality:FINAL <> (_context_receiver_0:<root>.A<kotlin.Int>, _context_receiver_1:<root>.A<kotlin.String>, _context_receiver_2:<root>.B) returnType:kotlin.Unit
FUN name:f visibility:public modality:FINAL <> ($context_receiver_0:<root>.A<kotlin.Int>, $context_receiver_1:<root>.A<kotlin.String>, $context_receiver_2:<root>.B) returnType:kotlin.Unit
contextReceiverParametersCount: 3
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER name:_context_receiver_1 index:1 type:<root>.A<kotlin.String>
VALUE_PARAMETER name:_context_receiver_2 index:2 type:<root>.B
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER name:$context_receiver_1 index:1 type:<root>.A<kotlin.String>
VALUE_PARAMETER name:$context_receiver_2 index:2 type:<root>.B
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toFloat (): kotlin.Float declared in kotlin.Int' type=kotlin.Float origin=null
$this: CALL 'public final fun <get-a> (): T of <root>.A declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.A<kotlin.Int> declared in <root>.f' type=<root>.A<kotlin.Int> origin=null
$this: GET_VAR '$context_receiver_0: <root>.A<kotlin.Int> declared in <root>.f' type=<root>.A<kotlin.Int> origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-length> (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=GET_PROPERTY
$this: CALL 'public final fun <get-a> (): T of <root>.A declared in <root>.A' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_1: <root>.A<kotlin.String> declared in <root>.f' type=<root>.A<kotlin.String> origin=null
$this: GET_VAR '$context_receiver_1: <root>.A<kotlin.String> declared in <root>.f' type=<root>.A<kotlin.String> origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-b> (): kotlin.Any declared in <root>.B' type=kotlin.Any origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_2: <root>.B declared in <root>.f' type=<root>.B origin=null
$this: GET_VAR '$context_receiver_2: <root>.B declared in <root>.f' type=<root>.B origin=null
PROPERTY name:p visibility:public modality:FINAL [val]
FUN name:<get-p> visibility:public modality:FINAL <> ($receiver:<root>.C, _context_receiver_0:<root>.A<kotlin.Int>, _context_receiver_1:<root>.A<kotlin.String>, _context_receiver_2:<root>.B) returnType:kotlin.Int
FUN name:<get-p> visibility:public modality:FINAL <> ($receiver:<root>.C, $context_receiver_0:<root>.A<kotlin.Int>, $context_receiver_1:<root>.A<kotlin.String>, $context_receiver_2:<root>.B) returnType:kotlin.Int
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val]
contextReceiverParametersCount: 3
$receiver: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:_context_receiver_0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER name:_context_receiver_1 index:1 type:<root>.A<kotlin.String>
VALUE_PARAMETER name:_context_receiver_2 index:2 type:<root>.B
VALUE_PARAMETER name:$context_receiver_0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER name:$context_receiver_1 index:1 type:<root>.A<kotlin.String>
VALUE_PARAMETER name:$context_receiver_2 index:2 type:<root>.B
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toFloat (): kotlin.Float declared in kotlin.Int' type=kotlin.Float origin=null
$this: CALL 'public final fun <get-a> (): T of <root>.A declared in <root>.A' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_0: <root>.A<kotlin.Int> declared in <root>.<get-p>' type=<root>.A<kotlin.Int> origin=null
$this: GET_VAR '$context_receiver_0: <root>.A<kotlin.Int> declared in <root>.<get-p>' type=<root>.A<kotlin.Int> origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-length> (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=GET_PROPERTY
$this: CALL 'public final fun <get-a> (): T of <root>.A declared in <root>.A' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_1: <root>.A<kotlin.String> declared in <root>.<get-p>' type=<root>.A<kotlin.String> origin=null
$this: GET_VAR '$context_receiver_1: <root>.A<kotlin.String> declared in <root>.<get-p>' type=<root>.A<kotlin.String> origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-b> (): kotlin.Any declared in <root>.B' type=kotlin.Any origin=GET_PROPERTY
$this: GET_VAR '_context_receiver_2: <root>.B declared in <root>.<get-p>' type=<root>.B origin=null
$this: GET_VAR '$context_receiver_2: <root>.B declared in <root>.<get-p>' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Any declared in <root>.C' type=kotlin.Any origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.C declared in <root>.<get-p>' type=<root>.C origin=null
@@ -139,5 +139,5 @@ FILE fqName:<root> fileName:/thisWithCustomLabel.kt
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun <get-c> (): kotlin.Any declared in <root>.C' type=kotlin.Any origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.C declared in <root>.<get-p>' type=<root>.C origin=null
RETURN type=kotlin.Nothing from='public final fun <get-p> (_context_receiver_0: <root>.A<kotlin.Int>, _context_receiver_1: <root>.A<kotlin.String>, _context_receiver_2: <root>.B): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-p> ($context_receiver_0: <root>.A<kotlin.Int>, $context_receiver_1: <root>.A<kotlin.String>, $context_receiver_2: <root>.B): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=1
@@ -37,17 +37,17 @@ class C {
}
fun f(_context_receiver_0: A<Int>, _context_receiver_1: A<String>, _context_receiver_2: B) {
_context_receiver_0.<get-a>().toFloat() /*~> Unit */
_context_receiver_1.<get-a>().<get-length>() /*~> Unit */
_context_receiver_2.<get-b>() /*~> Unit */
fun f($context_receiver_0: A<Int>, $context_receiver_1: A<String>, $context_receiver_2: B) {
$context_receiver_0.<get-a>().toFloat() /*~> Unit */
$context_receiver_1.<get-a>().<get-length>() /*~> Unit */
$context_receiver_2.<get-b>() /*~> Unit */
}
val C.p: Int
get(_context_receiver_0: A<Int>, _context_receiver_1: A<String>, _context_receiver_2: B): Int {
_context_receiver_0.<get-a>().toFloat() /*~> Unit */
_context_receiver_1.<get-a>().<get-length>() /*~> Unit */
_context_receiver_2.<get-b>() /*~> Unit */
get($context_receiver_0: A<Int>, $context_receiver_1: A<String>, $context_receiver_2: B): Int {
$context_receiver_0.<get-a>().toFloat() /*~> Unit */
$context_receiver_1.<get-a>().<get-length>() /*~> Unit */
$context_receiver_2.<get-b>() /*~> Unit */
<this>.<get-c>() /*~> Unit */
<this>.<get-c>() /*~> Unit */
<this>.<get-c>() /*~> Unit */
@@ -1,8 +1,8 @@
FILE fqName:<root> fileName:/typeParameterAsContextReceiver.kt
FUN name:useContext visibility:public modality:FINAL <T> (_context_receiver_0:T of <root>.useContext, block:kotlin.Function1<T of <root>.useContext, kotlin.Unit>) returnType:kotlin.Unit
FUN name:useContext visibility:public modality:FINAL <T> ($context_receiver_0:T of <root>.useContext, block:kotlin.Function1<T of <root>.useContext, kotlin.Unit>) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
contextReceiverParametersCount: 1
VALUE_PARAMETER name:_context_receiver_0 index:0 type:T of <root>.useContext
VALUE_PARAMETER name:$context_receiver_0 index:0 type:T of <root>.useContext
VALUE_PARAMETER name:block index:1 type:kotlin.Function1<T of <root>.useContext, kotlin.Unit>
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
@@ -15,9 +15,9 @@ FILE fqName:<root> fileName:/typeParameterAsContextReceiver.kt
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.Int) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$with type:kotlin.Int
BLOCK_BODY
CALL 'public final fun useContext <T> (_context_receiver_0: T of <root>.useContext, block: kotlin.Function1<T of <root>.useContext, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
CALL 'public final fun useContext <T> ($context_receiver_0: T of <root>.useContext, block: kotlin.Function1<T of <root>.useContext, kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
<T>: kotlin.Int
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.test.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.test.<anonymous>' type=kotlin.Int origin=null
block: FUN_EXPR type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (i:kotlin.Int) returnType:kotlin.Unit
VALUE_PARAMETER name:i index:0 type:kotlin.Int
@@ -1,9 +1,9 @@
fun <T : Any?> useContext(_context_receiver_0: T, block: Function1<T, Unit>) {
fun <T : Any?> useContext($context_receiver_0: T, block: Function1<T, Unit>) {
}
fun test() {
with<Int, Unit>(receiver = 42, block = local fun Int.<anonymous>() {
useContext<Int>(_context_receiver_0 = $this$with, block = local fun <anonymous>(i: Int) {
useContext<Int>($context_receiver_0 = $this$with, block = local fun <anonymous>(i: Int) {
i.toDouble() /*~> Unit */
}
)
@@ -103,30 +103,30 @@ FILE fqName:<root> fileName:/unaryOperators.kt
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.<set-operationScore>' type=kotlin.Int origin=null
FUN name:unaryMinus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:unaryMinus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.unaryMinus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryMinus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.unaryMinus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryMinus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun unaryMinus (): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.unaryMinus' type=<root>.Result origin=null
FUN name:unaryPlus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:unaryPlus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.unaryPlus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryPlus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.unaryPlus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryPlus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: WHEN type=kotlin.Int origin=IF
BRANCH
@@ -141,31 +141,31 @@ FILE fqName:<root> fileName:/unaryOperators.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.unaryPlus' type=<root>.Result origin=null
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.inc' type=<root>.Result origin=null
other: CONST Int type=kotlin.Int value=1
FUN name:dec visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:dec visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=EQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.dec' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun dec (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.dec' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun dec ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun minus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MINUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
@@ -190,35 +190,35 @@ FILE fqName:<root> fileName:/unaryOperators.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:<root>.Result [val]
GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=null
SET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=kotlin.Unit origin=EQ
CALL 'public final fun inc (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
CALL 'public final fun inc ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
$receiver: GET_VAR 'val tmp_1: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_1: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
BLOCK type=<root>.Result origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:<root>.Result [val]
GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=null
SET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=kotlin.Unit origin=EQ
CALL 'public final fun inc (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
CALL 'public final fun inc ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
$receiver: GET_VAR 'val tmp_2: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_2: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun unaryMinus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
CALL 'public final fun unaryMinus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
$receiver: GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun unaryPlus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
CALL 'public final fun unaryPlus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
$receiver: GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): <root>.Result declared in <root>.box'
BLOCK type=<root>.Result origin=null
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:<root>.Result [val]
GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=null
SET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=kotlin.Unit origin=EQ
CALL 'public final fun dec (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
CALL 'public final fun dec ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=null
$receiver: GET_VAR 'val tmp_3: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_3: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
WHEN type=kotlin.String origin=IF
@@ -46,26 +46,26 @@ var operationScore: Int
get
set
operator fun Result.unaryMinus(_context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.unaryMinus($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().unaryMinus())
}
operator fun Result.unaryPlus(_context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.unaryPlus($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = when {
less(arg0 = <this>.<get-i>(), arg1 = 0) -> <this>.<get-i>().unaryMinus()
else -> <this>.<get-i>()
})
}
operator fun Result.inc(_context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.inc($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().plus(other = 1))
}
operator fun Result.dec(_context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
operator fun Result.dec($context_receiver_0: Int): Result {
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
return Result(i = <this>.<get-i>().minus(other = 1))
}
@@ -74,19 +74,19 @@ fun box(): String {
with<Int, Result>(receiver = 1, block = local fun Int.<anonymous>(): Result {
{ // BLOCK
val <unary>: Result = result
result = <unary>.inc(_context_receiver_0 = $this$with)
result = <unary>.inc($context_receiver_0 = $this$with)
<unary>
} /*~> Unit */
{ // BLOCK
val <unary>: Result = result
result = <unary>.inc(_context_receiver_0 = $this$with)
result = <unary>.inc($context_receiver_0 = $this$with)
<unary>
} /*~> Unit */
result.unaryMinus(_context_receiver_0 = $this$with) /*~> Unit */
result.unaryPlus(_context_receiver_0 = $this$with) /*~> Unit */
result.unaryMinus($context_receiver_0 = $this$with) /*~> Unit */
result.unaryPlus($context_receiver_0 = $this$with) /*~> Unit */
return { // BLOCK
val <unary>: Result = result
result = <unary>.dec(_context_receiver_0 = $this$with)
result = <unary>.dec($context_receiver_0 = $this$with)
<unary>
}
}
@@ -103,32 +103,32 @@ FILE fqName:<root> fileName:/unaryOperators.kt
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:operationScore type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.<set-operationScore>' type=kotlin.Int origin=null
FUN name:unaryMinus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:unaryMinus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.unaryMinus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryMinus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.unaryMinus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryMinus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun unaryMinus (): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=UMINUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.unaryMinus' type=<root>.Result origin=null
FUN name:unaryPlus visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:unaryPlus visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.unaryPlus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryPlus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.unaryPlus' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun unaryPlus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: WHEN type=kotlin.Int origin=IF
BRANCH
@@ -143,33 +143,33 @@ FILE fqName:<root> fileName:/unaryOperators.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.unaryPlus' type=<root>.Result origin=null
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:inc visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.inc' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun inc ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.Result declared in <root>.inc' type=<root>.Result origin=null
other: CONST Int type=kotlin.Int value=1
FUN name:dec visibility:public modality:FINAL <> ($receiver:<root>.Result, _context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
FUN name:dec visibility:public modality:FINAL <> ($receiver:<root>.Result, $context_receiver_0:kotlin.Int) returnType:<root>.Result [operator]
contextReceiverParametersCount: 1
$receiver: VALUE_PARAMETER name:<this> type:<root>.Result
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
VALUE_PARAMETER name:$context_receiver_0 index:0 type:kotlin.Int
BLOCK_BODY
BLOCK type=kotlin.Unit origin=PLUSEQ
CALL 'public final fun <set-operationScore> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
<set-?>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
$this: CALL 'public final fun <get-operationScore> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
other: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.dec' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun dec (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
other: GET_VAR '$context_receiver_0: kotlin.Int declared in <root>.dec' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun dec ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (i: kotlin.Int) [primary] declared in <root>.Result' type=<root>.Result origin=null
i: CALL 'public final fun minus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MINUS
$this: CALL 'public final fun <get-i> (): kotlin.Int declared in <root>.Result' type=kotlin.Int origin=GET_PROPERTY
@@ -194,35 +194,35 @@ FILE fqName:<root> fileName:/unaryOperators.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:<root>.Result [val]
GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=POSTFIX_INCR
SET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=kotlin.Unit origin=POSTFIX_INCR
CALL 'public final fun inc (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=POSTFIX_INCR
CALL 'public final fun inc ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=POSTFIX_INCR
$receiver: GET_VAR 'val tmp_1: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_1: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
BLOCK type=<root>.Result origin=POSTFIX_INCR
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:<root>.Result [val]
GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=POSTFIX_INCR
SET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=kotlin.Unit origin=POSTFIX_INCR
CALL 'public final fun inc (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=POSTFIX_INCR
CALL 'public final fun inc ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=POSTFIX_INCR
$receiver: GET_VAR 'val tmp_2: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_2: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun unaryMinus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=UMINUS
CALL 'public final fun unaryMinus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=UMINUS
$receiver: GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public final fun unaryPlus (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=UPLUS
CALL 'public final fun unaryPlus ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=UPLUS
$receiver: GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): <root>.Result declared in <root>.box'
BLOCK type=<root>.Result origin=POSTFIX_DECR
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:<root>.Result [val]
GET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=<root>.Result origin=POSTFIX_DECR
SET_VAR 'var result: <root>.Result [var] declared in <root>.box' type=kotlin.Unit origin=POSTFIX_DECR
CALL 'public final fun dec (_context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=POSTFIX_DECR
CALL 'public final fun dec ($context_receiver_0: kotlin.Int): <root>.Result [operator] declared in <root>' type=<root>.Result origin=POSTFIX_DECR
$receiver: GET_VAR 'val tmp_3: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
_context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
$context_receiver_0: GET_VAR '$this$with: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
GET_VAR 'val tmp_3: <root>.Result [val] declared in <root>.box.<anonymous>' type=<root>.Result origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
WHEN type=kotlin.String origin=IF
@@ -46,16 +46,16 @@ var operationScore: Int
get
set
operator fun Result.unaryMinus(_context_receiver_0: Int): Result {
operator fun Result.unaryMinus($context_receiver_0: Int): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = <this>.<get-i>().unaryMinus())
}
operator fun Result.unaryPlus(_context_receiver_0: Int): Result {
operator fun Result.unaryPlus($context_receiver_0: Int): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = when {
less(arg0 = <this>.<get-i>(), arg1 = 0) -> <this>.<get-i>().unaryMinus()
@@ -63,16 +63,16 @@ operator fun Result.unaryPlus(_context_receiver_0: Int): Result {
})
}
operator fun Result.inc(_context_receiver_0: Int): Result {
operator fun Result.inc($context_receiver_0: Int): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = <this>.<get-i>().plus(other = 1))
}
operator fun Result.dec(_context_receiver_0: Int): Result {
operator fun Result.dec($context_receiver_0: Int): Result {
{ // BLOCK
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = _context_receiver_0))
<set-operationScore>(<set-?> = <get-operationScore>().plus(other = $context_receiver_0))
}
return Result(i = <this>.<get-i>().minus(other = 1))
}
@@ -82,19 +82,19 @@ fun box(): String {
with<Int, Result>(receiver = 1, block = local fun Int.<anonymous>(): Result {
{ // BLOCK
val tmp0: Result = result
result = tmp0.inc(_context_receiver_0 = $this$with)
result = tmp0.inc($context_receiver_0 = $this$with)
tmp0
} /*~> Unit */
{ // BLOCK
val tmp1: Result = result
result = tmp1.inc(_context_receiver_0 = $this$with)
result = tmp1.inc($context_receiver_0 = $this$with)
tmp1
} /*~> Unit */
result.unaryMinus(_context_receiver_0 = $this$with) /*~> Unit */
result.unaryPlus(_context_receiver_0 = $this$with) /*~> Unit */
result.unaryMinus($context_receiver_0 = $this$with) /*~> Unit */
result.unaryPlus($context_receiver_0 = $this$with) /*~> Unit */
return { // BLOCK
val tmp2: Result = result
result = tmp2.dec(_context_receiver_0 = $this$with)
result = tmp2.dec($context_receiver_0 = $this$with)
tmp2
}
}
@@ -64,5 +64,5 @@ object NameUtils {
@JvmStatic
fun contextReceiverName(index: Int): Name =
Name.identifier("_context_receiver_$index")
Name.identifier("\$context_receiver_$index")
}