FIR2IR: declare receivers for all accessors of extension properties

Before this commit, extension receivers were declared only for
properties with container source, which is strange & inconsistent.
Now we declare accessor extension receiver iff corresponding property
has extension receiver.
This commit is contained in:
Mikhail Glukhikh
2020-02-25 11:57:16 +03:00
parent 8c155578f7
commit d1fac6dce1
32 changed files with 158 additions and 124 deletions
@@ -409,8 +409,11 @@ class Fir2IrDeclarationStorage(
}
private fun <T : IrFunction> T.declareParameters(
function: FirFunction<*>?, containingClass: IrClass?,
isStatic: Boolean, parentReceiverType: FirTypeRef? = null
function: FirFunction<*>?,
containingClass: IrClass?,
isStatic: Boolean,
// Can be not-null only for property accessors
parentPropertyReceiverType: FirTypeRef?
) {
val parent = this
if (function is FirSimpleFunction) {
@@ -431,7 +434,7 @@ class Fir2IrDeclarationStorage(
}
if (function !is FirConstructor) {
val thisOrigin = IrDeclarationOrigin.DEFINED
val receiverTypeRef = function?.receiverTypeRef ?: parentReceiverType
val receiverTypeRef = if (function !is FirPropertyAccessor) function?.receiverTypeRef else parentPropertyReceiverType
if (receiverTypeRef != null) {
extensionReceiverParameter = receiverTypeRef.convertWithOffsets { startOffset, endOffset ->
declareThisReceiverParameter(
@@ -459,11 +462,11 @@ class Fir2IrDeclarationStorage(
irParent: IrDeclarationParent?,
isStatic: Boolean,
shouldLeaveScope: Boolean,
parentReceiverType: FirTypeRef? = null
parentPropertyReceiverType: FirTypeRef? = null
): T {
descriptor.bind(this)
enterScope(descriptor)
declareParameters(function, containingClass = irParent as? IrClass, isStatic = isStatic, parentReceiverType = parentReceiverType)
declareParameters(function, irParent as? IrClass, isStatic, parentPropertyReceiverType)
if (shouldLeaveScope) {
leaveScope(descriptor)
}
@@ -597,7 +600,7 @@ class Fir2IrDeclarationStorage(
origin: IrDeclarationOrigin,
startOffset: Int,
endOffset: Int,
parentPropertyReceiverType: FirTypeRef? = null
correspondingPropertyReceiverTypeRef: FirTypeRef?
): IrSimpleFunction {
val propertyDescriptor = correspondingProperty.descriptor
val descriptor =
@@ -625,7 +628,7 @@ class Fir2IrDeclarationStorage(
}
}.bindAndDeclareParameters(
propertyAccessor, descriptor, irParent, isStatic = irParent !is IrClass, shouldLeaveScope = true,
parentReceiverType = parentPropertyReceiverType
parentPropertyReceiverType = correspondingPropertyReceiverTypeRef
).apply {
if (irParent != null) {
parent = irParent
@@ -702,7 +705,7 @@ class Fir2IrDeclarationStorage(
).apply {
descriptor.bind(this)
val type = property.returnTypeRef.toIrType(session, this@Fir2IrDeclarationStorage)
val receiverType = if (property.containerSource != null) property.receiverTypeRef else null
val receiverType = property.receiverTypeRef
getter = createIrPropertyAccessor(
property.getter, this, type, irParent, false,
when {
@@ -710,7 +713,7 @@ class Fir2IrDeclarationStorage(
property.getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
else -> origin
},
startOffset, endOffset, parentPropertyReceiverType = receiverType
startOffset, endOffset, correspondingPropertyReceiverTypeRef = receiverType
)
if (property.isVar) {
setter = createIrPropertyAccessor(
@@ -721,7 +724,7 @@ class Fir2IrDeclarationStorage(
else -> origin
},
startOffset, endOffset,
parentPropertyReceiverType = receiverType
correspondingPropertyReceiverTypeRef = receiverType
)
}
}
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: Test.java
@@ -8,16 +8,19 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
VALUE_PARAMETER name:a index:0 type:A of <root>.IBase
VALUE_PARAMETER name:b index:1 type:B of <root>.IBase.foo
PROPERTY name:id visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-id> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>) returnType:kotlin.collections.Map<A of <root>.IBase, C of <uninitialized parent>>?
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-id> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>, $receiver:C of <uninitialized parent>) returnType:kotlin.collections.Map<A of <root>.IBase, C of <uninitialized parent>>?
correspondingProperty: PROPERTY name:id visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.IBase<A of <root>.IBase>
$receiver: VALUE_PARAMETER name:<this> type:C of <uninitialized parent>
PROPERTY name:x visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>) returnType:D of <uninitialized parent>?
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>, $receiver:kotlin.collections.List<D of <uninitialized parent>>) returnType:D of <uninitialized parent>?
correspondingProperty: PROPERTY name:x visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.IBase<A of <root>.IBase>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-x> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>, <set-?>:D of <uninitialized parent>?) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <uninitialized parent>>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-x> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>, $receiver:kotlin.collections.List<D of <uninitialized parent>>, <set-?>:D of <uninitialized parent>?) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:x visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.IBase<A of <root>.IBase>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <uninitialized parent>>
VALUE_PARAMETER name:<set-?> index:0 type:D of <uninitialized parent>?
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -71,16 +71,19 @@ FILE fqName:<root> fileName:/delegatedImplementation.kt
$this: VALUE_PARAMETER name:<this> type:<root>.IOther
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
PROPERTY name:z1 visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z1> visibility:public modality:ABSTRACT <> ($this:<root>.IOther) returnType:kotlin.Int
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z1> visibility:public modality:ABSTRACT <> ($this:<root>.IOther, $receiver:kotlin.Byte) returnType:kotlin.Int
correspondingProperty: PROPERTY name:z1 visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.IOther
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Byte
PROPERTY name:z2 visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z2> visibility:public modality:ABSTRACT <> ($this:<root>.IOther) returnType:kotlin.Int
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z2> visibility:public modality:ABSTRACT <> ($this:<root>.IOther, $receiver:kotlin.Byte) returnType:kotlin.Int
correspondingProperty: PROPERTY name:z2 visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.IOther
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-z2> visibility:public modality:ABSTRACT <> ($this:<root>.IOther, <set-?>:kotlin.Int) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Byte
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-z2> visibility:public modality:ABSTRACT <> ($this:<root>.IOther, $receiver:kotlin.Byte, <set-?>:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:z2 visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.IOther
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Byte
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -138,22 +141,25 @@ FILE fqName:<root> fileName:/delegatedImplementation.kt
receiver: GET_VAR '<this>: <root>.otherImpl.<no name provided> declared in <root>.otherImpl.<no name provided>.<set-y>' type=<root>.otherImpl.<no name provided> origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.otherImpl.<no name provided>.<set-y>' type=kotlin.Int origin=null
PROPERTY name:z1 visibility:public modality:FINAL [val]
FUN name:<get-z1> visibility:public modality:FINAL <> ($this:<root>.otherImpl.<no name provided>) returnType:kotlin.Int
FUN name:<get-z1> visibility:public modality:FINAL <> ($this:<root>.otherImpl.<no name provided>, $receiver:kotlin.Byte) returnType:kotlin.Int
correspondingProperty: PROPERTY name:z1 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.otherImpl.<no name provided>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Byte
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-z1> (): kotlin.Int declared in <root>.otherImpl.<no name provided>'
CONST Int type=kotlin.Int value=1
PROPERTY name:z2 visibility:public modality:FINAL [var]
FUN name:<get-z2> visibility:public modality:FINAL <> ($this:<root>.otherImpl.<no name provided>) returnType:kotlin.Int
FUN name:<get-z2> visibility:public modality:FINAL <> ($this:<root>.otherImpl.<no name provided>, $receiver:kotlin.Byte) returnType:kotlin.Int
correspondingProperty: PROPERTY name:z2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.otherImpl.<no name provided>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Byte
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-z2> (): kotlin.Int declared in <root>.otherImpl.<no name provided>'
CONST Int type=kotlin.Int value=2
FUN name:<set-z2> visibility:public modality:FINAL <> ($this:<root>.otherImpl.<no name provided>, value:kotlin.Int) returnType:kotlin.Unit
FUN name:<set-z2> visibility:public modality:FINAL <> ($this:<root>.otherImpl.<no name provided>, $receiver:kotlin.Byte, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:z2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.otherImpl.<no name provided>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Byte
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.otherImpl.<no name provided>' type=<root>.otherImpl.<no name provided> origin=null
@@ -28,9 +28,10 @@ FILE fqName:<root> fileName:/receiverParameterWithAnnotations.kt
RETURN type=kotlin.Nothing from='public final fun f (): kotlin.String declared in <root>.A'
CONST String type=kotlin.String value=""
PROPERTY name:p visibility:public modality:FINAL [val]
FUN name:<get-p> visibility:public modality:FINAL <> ($this:<root>.A) returnType:kotlin.String
FUN name:<get-p> visibility:public modality:FINAL <> ($this:<root>.A, $receiver:kotlin.String?) returnType:kotlin.String
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.A
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String?
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-p> (): kotlin.String declared in <root>.A'
CONST String type=kotlin.String value=""
@@ -53,8 +54,9 @@ FILE fqName:<root> fileName:/receiverParameterWithAnnotations.kt
RETURN type=kotlin.Nothing from='public final fun topLevelF (): kotlin.String declared in <root>'
CONST String type=kotlin.String value=""
PROPERTY name:topLevelP visibility:public modality:FINAL [val]
FUN name:<get-topLevelP> visibility:public modality:FINAL <> () returnType:kotlin.String
FUN name:<get-topLevelP> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.String
correspondingProperty: PROPERTY name:topLevelP visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-topLevelP> (): kotlin.String declared in <root>'
CONST String type=kotlin.String value=""
@@ -1,55 +0,0 @@
FILE fqName:<root> fileName:/extensionProperties.kt
PROPERTY name:test1 visibility:public modality:FINAL [val]
FUN name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
PROPERTY name:test2 visibility:public modality:FINAL [var]
FUN name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [var]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
FUN name:<set-test2> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [var]
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host
CONSTRUCTOR visibility:public <> () returnType:<root>.Host [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:test3 visibility:public modality:FINAL [val]
FUN name:<get-test3> visibility:public modality:FINAL <> ($this:<root>.Host) returnType:kotlin.Int
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test3> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
PROPERTY name:test4 visibility:public modality:FINAL [var]
FUN name:<get-test4> visibility:public modality:FINAL <> ($this:<root>.Host) returnType:kotlin.Int
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
FUN name:<set-test4> visibility:public modality:FINAL <> ($this:<root>.Host, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
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
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
val String.test1 get() = 42
var String.test2
+2 -1
View File
@@ -2,9 +2,10 @@ FILE fqName:<root> fileName:/kt35550.kt
CLASS INTERFACE name:I modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
PROPERTY name:id visibility:public modality:OPEN [val]
FUN name:<get-id> visibility:public modality:OPEN <> ($this:<root>.I) returnType:T of <uninitialized parent>
FUN name:<get-id> visibility:public modality:OPEN <> ($this:<root>.I, $receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
correspondingProperty: PROPERTY name:id visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.I
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-id> (): T of <uninitialized parent> declared in <root>.I'
ERROR_CALL 'Unresolved reference: this@R|/I.id|' type=T of <uninitialized parent>
@@ -16,35 +16,41 @@ FILE fqName:<root> fileName:/propertyAccessors.kt
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testExt1 visibility:public modality:FINAL [val]
FUN name:<get-testExt1> visibility:public modality:FINAL <> () returnType:kotlin.Int
FUN name:<get-testExt1> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt1 visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt1> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
PROPERTY name:testExt2 visibility:public modality:FINAL [var]
FUN name:<get-testExt2> visibility:public modality:FINAL <> () returnType:kotlin.Int
FUN name:<get-testExt2> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt2 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt2> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
FUN name:<set-testExt2> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
FUN name:<set-testExt2> visibility:public modality:FINAL <> ($receiver:kotlin.String, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testExt2 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testExt3 visibility:public modality:FINAL [val]
FUN name:<get-testExt3> visibility:public modality:FINAL <> () returnType:kotlin.Int
FUN name:<get-testExt3> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt3 visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt3> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
PROPERTY name:testExt4 visibility:public modality:FINAL [var]
FUN name:<get-testExt4> visibility:public modality:FINAL <> () returnType:kotlin.Int
FUN name:<get-testExt4> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt4 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt4> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
FUN name:<set-testExt4> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
FUN name:<set-testExt4> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testExt4 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
@@ -74,41 +80,47 @@ FILE fqName:<root> fileName:/propertyAccessors.kt
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testMemExt1 visibility:public modality:FINAL [val]
FUN name:<get-testMemExt1> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:kotlin.Int
FUN name:<get-testMemExt1> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt1 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt1> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
PROPERTY name:testMemExt2 visibility:public modality:FINAL [var]
FUN name:<get-testMemExt2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:kotlin.Int
FUN name:<get-testMemExt2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt2> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
FUN name:<set-testMemExt2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, value:kotlin.Int) returnType:kotlin.Unit
FUN name:<set-testMemExt2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.String, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testMemExt2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testMemExt3 visibility:public modality:FINAL [val]
FUN name:<get-testMemExt3> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:kotlin.Int
FUN name:<get-testMemExt3> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TT of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt3 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TT of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt3> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
PROPERTY name:testMemExt4 visibility:public modality:FINAL [var]
FUN name:<get-testMemExt4> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:kotlin.Int
FUN name:<get-testMemExt4> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TT of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt4 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TT of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt4> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
FUN name:<set-testMemExt4> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, value:kotlin.Int) returnType:kotlin.Unit
FUN name:<set-testMemExt4> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TT of <uninitialized parent>, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testMemExt4 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TT of <uninitialized parent>
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
@@ -25,10 +25,12 @@ FILE fqName:<root> fileName:/typeParameterBeforeBound.kt
TYPE_PARAMETER name:U index:0 variance: superTypes:[kotlin.Any?]
BLOCK_BODY
PROPERTY name:test3 visibility:public modality:FINAL [var]
FUN name:<get-test3> visibility:public modality:FINAL <> () returnType:kotlin.Unit
FUN name:<get-test3> visibility:public modality:FINAL <> ($receiver:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>
BLOCK_BODY
FUN name:<set-test3> visibility:public modality:FINAL <> (value:kotlin.Unit) returnType:kotlin.Unit
FUN name:<set-test3> visibility:public modality:FINAL <> ($receiver:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>, value:kotlin.Unit) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>
VALUE_PARAMETER name:value index:0 type:kotlin.Unit
BLOCK_BODY
@@ -60,11 +60,13 @@ FILE fqName:<root> fileName:/memberExtension.kt
EXPRESSION_BODY
CALL 'public final fun provideDelegate (host: kotlin.Any?, p: kotlin.Any): <root>.Host.StringDelegate [operator] declared in <root>.Host' type=<root>.Host.StringDelegate origin=null
$this: GET_VAR '<this>: <root>.Host declared in <root>.Host' type=<root>.Host origin=null
$receiver: CONST String type=kotlin.String value="K"
host: GET_VAR '<this>: <root>.Host declared in <root>.Host' type=<root>.Host origin=null
p: PROPERTY_REFERENCE 'public final plusK: kotlin.String [delegated,val]' field=null getter='public final fun <get-plusK> (): kotlin.String declared in <root>.Host' setter=null type=kotlin.reflect.KProperty<*> origin=null
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-plusK> visibility:public modality:FINAL <> ($this:<root>.Host) returnType:kotlin.String
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-plusK> visibility:public modality:FINAL <> ($this:<root>.Host, $receiver:kotlin.String) returnType:kotlin.String
correspondingProperty: PROPERTY name:plusK visibility:public modality:FINAL [delegated,val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-plusK> (): kotlin.String declared in <root>.Host'
CALL 'public final fun getValue (receiver: kotlin.String, p: kotlin.Any): kotlin.String [operator] declared in <root>.Host.StringDelegate' type=kotlin.String origin=null
@@ -77,6 +79,7 @@ FILE fqName:<root> fileName:/memberExtension.kt
EXPRESSION_BODY
CALL 'public final fun <get-plusK> (): kotlin.String declared in <root>.Host' type=kotlin.String origin=null
$this: GET_VAR '<this>: <root>.Host declared in <root>.Host' type=<root>.Host origin=null
$receiver: CONST String type=kotlin.String value="O"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-ok> visibility:public modality:FINAL <> ($this:<root>.Host) returnType:kotlin.String
correspondingProperty: PROPERTY name:ok visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
@@ -14,8 +14,9 @@ FILE fqName:<root> fileName:/castToTypeParameter.kt
TYPE_OP type=T of <root>.castExtFun origin=CAST typeOperand=T of <root>.castExtFun
GET_VAR '<this>: kotlin.Any declared in <root>.castExtFun' type=kotlin.Any origin=null
PROPERTY name:castExtVal visibility:public modality:FINAL [val]
FUN name:<get-castExtVal> visibility:public modality:FINAL <> () returnType:T of <uninitialized parent>
FUN name:<get-castExtVal> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
correspondingProperty: PROPERTY name:castExtVal visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-castExtVal> (): T of <uninitialized parent> declared in <root>'
TYPE_OP type=T of <uninitialized parent> origin=CAST typeOperand=T of <uninitialized parent>
@@ -58,17 +59,19 @@ FILE fqName:<root> fileName:/castToTypeParameter.kt
TYPE_OP type=TF of <root>.Host.castGenericMemberExtFun origin=CAST typeOperand=TF of <root>.Host.castGenericMemberExtFun
GET_VAR '<this>: kotlin.Any declared in <root>.Host.castGenericMemberExtFun' type=kotlin.Any origin=null
PROPERTY name:castMemberExtVal visibility:public modality:FINAL [val]
FUN name:<get-castMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:T of <root>.Host
FUN name:<get-castMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.Any) returnType:T of <root>.Host
correspondingProperty: PROPERTY name:castMemberExtVal visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-castMemberExtVal> (): T of <root>.Host declared in <root>.Host'
TYPE_OP type=T of <root>.Host origin=CAST typeOperand=T of <root>.Host
ERROR_CALL 'Unresolved reference: this@R|/Host.castMemberExtVal|' type=kotlin.Any
PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:TV of <uninitialized parent>
FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TV of <uninitialized parent>) returnType:TV of <uninitialized parent>
correspondingProperty: PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TV of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-castGenericMemberExtVal> (): TV of <uninitialized parent> declared in <root>.Host'
TYPE_OP type=TV of <uninitialized parent> origin=CAST typeOperand=TV of <uninitialized parent>
@@ -243,5 +243,6 @@ FILE fqName:<root> fileName:/complexAugmentedAssignment.kt
BLOCK_BODY
CALL 'public final fun plusAssign (b: <root>.B): kotlin.Unit [operator] declared in <root>.Host' type=kotlin.Unit origin=null
$this: GET_VAR '<this>: <root>.Host declared in <root>.test3' type=<root>.Host origin=null
$receiver: GET_VAR 'v: <root>.B declared in <root>.test3' type=<root>.B origin=null
b: CONSTRUCTOR_CALL 'public constructor <init> (s: kotlin.Int) [primary] declared in <root>.B' type=<root>.B origin=null
s: CONST Int type=kotlin.Int value=1000
@@ -63,9 +63,12 @@ FILE fqName:<root> fileName:/destructuringWithUnderscore.kt
VAR name:x type:kotlin.Int [val]
CALL 'public final fun component1 (): kotlin.Int [operator] declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
$receiver: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
VAR name:_ type:kotlin.Int [val]
CALL 'public final fun component2 (): kotlin.Int [operator] declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
$receiver: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
VAR name:z type:kotlin.Int [val]
CALL 'public final fun component3 (): kotlin.Int [operator] declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
$receiver: GET_VAR 'val tmp_0: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
@@ -1,7 +1,8 @@
FILE fqName:<root> fileName:/extensionPropertyGetterCall.kt
PROPERTY name:okext visibility:public modality:FINAL [val]
FUN name:<get-okext> visibility:public modality:FINAL <> () returnType:kotlin.String
FUN name:<get-okext> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.String
correspondingProperty: PROPERTY name:okext visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-okext> (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="OK"
@@ -10,3 +11,4 @@ FILE fqName:<root> fileName:/extensionPropertyGetterCall.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test5 (): kotlin.String declared in <root>'
CALL 'public final fun <get-okext> (): kotlin.String declared in <root>' type=kotlin.String origin=null
$receiver: GET_VAR '<this>: kotlin.String declared in <root>.test5' type=kotlin.String origin=null
@@ -109,12 +109,15 @@ FILE fqName:<root> fileName:/forWithImplicitReceivers.kt
VAR FOR_LOOP_ITERATOR name:tmp_1 type:<root>.IntCell [val]
CALL 'public open fun iterator (): <root>.IntCell [operator] declared in <root>.IReceiver' type=<root>.IntCell origin=null
$this: GET_VAR '<this>: <root>.IReceiver declared in <root>.test' type=<root>.IReceiver origin=null
$receiver: GET_OBJECT 'CLASS OBJECT name:FiveTimes modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.FiveTimes
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public open fun hasNext (): kotlin.Boolean [operator] declared in <root>.IReceiver' type=kotlin.Boolean origin=null
$this: GET_VAR '<this>: <root>.IReceiver declared in <root>.test' type=<root>.IReceiver origin=null
$receiver: GET_VAR 'val tmp_1: <root>.IntCell [val] declared in <root>.test' type=<root>.IntCell origin=null
body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
VAR name:i type:kotlin.Int [val]
CALL 'public open fun next (): kotlin.Int [operator] declared in <root>.IReceiver' type=kotlin.Int origin=null
$this: GET_VAR '<this>: <root>.IReceiver declared in <root>.test' type=<root>.IReceiver origin=null
$receiver: GET_VAR 'val tmp_1: <root>.IntCell [val] declared in <root>.test' type=<root>.IntCell origin=null
CALL 'public final fun println (message: kotlin.Int): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
message: GET_VAR 'val i: kotlin.Int [val] declared in <root>.test' type=kotlin.Int origin=null
@@ -1,7 +1,8 @@
FILE fqName:<root> fileName:/genericPropertyCall.kt
PROPERTY name:id visibility:public modality:FINAL [val]
FUN name:<get-id> visibility:public modality:FINAL <> () returnType:T of <uninitialized parent>
FUN name:<get-id> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
correspondingProperty: PROPERTY name:id visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-id> (): T of <uninitialized parent> declared in <root>'
ERROR_CALL 'Unresolved reference: this@R|/id|' type=T of <uninitialized parent>
@@ -9,6 +10,7 @@ FILE fqName:<root> fileName:/genericPropertyCall.kt
FIELD PROPERTY_BACKING_FIELD name:test type:kotlin.String visibility:private [final,static]
EXPRESSION_BODY
CALL 'public final fun <get-id> (): T of <uninitialized parent> declared in <root>' type=kotlin.String origin=null
$receiver: CONST String type=kotlin.String value="abc"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test> visibility:public modality:FINAL <> () returnType:kotlin.String
correspondingProperty: PROPERTY name:test visibility:public modality:FINAL [val]
BLOCK_BODY
@@ -69,8 +69,9 @@ FILE fqName:<root> fileName:/genericPropertyRef.kt
EXPRESSION_BODY
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
kmember: PROPERTY_REFERENCE 'public final text: kotlin.String? [var]' field='FIELD PROPERTY_BACKING_FIELD name:text type:kotlin.String? visibility:private' getter='public final fun <get-text> (): kotlin.String? declared in <root>.Value' setter='public final fun <set-text> (<set-?>: kotlin.String?): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<T of <uninitialized parent>>, kotlin.String?> origin=null
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalText> visibility:public modality:FINAL <> () returnType:kotlin.Int
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalText> visibility:public modality:FINAL <> ($receiver:<root>.Value<T of <uninitialized parent>>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:additionalText visibility:public modality:FINAL [delegated,val]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Value<T of <uninitialized parent>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-additionalText> (): kotlin.Int declared in <root>'
CALL 'public final fun getValue (t: kotlin.Any?, p: kotlin.Any): kotlin.Int [operator] declared in <root>.DVal' type=kotlin.Int origin=null
@@ -82,8 +83,9 @@ FILE fqName:<root> fileName:/genericPropertyRef.kt
EXPRESSION_BODY
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
kmember: PROPERTY_REFERENCE 'public final value: T of <uninitialized parent> [var]' field=null getter='public final fun <get-value> (): T of <uninitialized parent> declared in <root>.Value' setter='public final fun <set-value> (<set-?>: T of <uninitialized parent>): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<T of <uninitialized parent>>, T of <uninitialized parent>> origin=null
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalValue> visibility:public modality:FINAL <> () returnType:kotlin.Int
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalValue> visibility:public modality:FINAL <> ($receiver:<root>.Value<T of <uninitialized parent>>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:additionalValue visibility:public modality:FINAL [delegated,val]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Value<T of <uninitialized parent>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-additionalValue> (): kotlin.Int declared in <root>'
CALL 'public final fun getValue (t: kotlin.Any?, p: kotlin.Any): kotlin.Int [operator] declared in <root>.DVal' type=kotlin.Int origin=null
@@ -159,13 +161,15 @@ FILE fqName:<root> fileName:/genericPropertyRef.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value2 type:kotlin.Any? visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Any? declared in <root>.<set-value2>' type=kotlin.Any? origin=null
PROPERTY name:bar visibility:public modality:FINAL [var]
FUN name:<get-bar> visibility:public modality:FINAL <> () returnType:T of <uninitialized parent>
FUN name:<get-bar> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-bar> (): T of <uninitialized parent> declared in <root>'
ERROR_CALL 'Unresolved reference: this@R|/bar|' type=T of <uninitialized parent>
FUN name:<set-bar> visibility:public modality:FINAL <> (value:T of <uninitialized parent>) returnType:kotlin.Unit
FUN name:<set-bar> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>, value:T of <uninitialized parent>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
VALUE_PARAMETER name:value index:0 type:T of <uninitialized parent>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:recivier type:kotlin.Any? visibility:private [static]' type=kotlin.Unit origin=null
@@ -29,8 +29,9 @@ FILE fqName:<root> fileName:/implicitCastToTypeParameter.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:asT visibility:public modality:FINAL [val]
FUN name:<get-asT> visibility:public modality:FINAL <> () returnType:T of <uninitialized parent>?
FUN name:<get-asT> visibility:public modality:FINAL <> ($receiver:<root>.Foo<T of <uninitialized parent>>) returnType:T of <uninitialized parent>?
correspondingProperty: PROPERTY name:asT visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Foo<T of <uninitialized parent>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-asT> (): T of <uninitialized parent>? declared in <root>'
WHEN type=T of <uninitialized parent>? origin=IF
@@ -28,9 +28,10 @@ FILE fqName:<root> fileName:/membersImportedFromObject.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-bar>' type=<root>.A origin=null
PROPERTY name:barExt visibility:public modality:FINAL [val]
FUN name:<get-barExt> visibility:public modality:FINAL <> ($this:<root>.A) returnType:kotlin.Int
FUN name:<get-barExt> visibility:public modality:FINAL <> ($this:<root>.A, $receiver:kotlin.Int) returnType:kotlin.Int
correspondingProperty: PROPERTY name:barExt visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.A
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-barExt> (): kotlin.Int declared in <root>.A'
CONST Int type=kotlin.Int value=43
@@ -72,6 +73,7 @@ FILE fqName:<root> fileName:/membersImportedFromObject.kt
EXPRESSION_BODY
CALL 'public final fun fooExt (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
$receiver: CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test3> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [val]
BLOCK_BODY
@@ -82,6 +84,7 @@ FILE fqName:<root> fileName:/membersImportedFromObject.kt
EXPRESSION_BODY
CALL 'public final fun <get-barExt> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
$receiver: CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [val]
BLOCK_BODY
+3 -1
View File
@@ -43,8 +43,9 @@ FILE fqName:<root> fileName:/references.kt
RETURN type=kotlin.Nothing from='public final fun test4 (): kotlin.String declared in <root>'
CALL 'public final fun <get-ok3> (): kotlin.String declared in <root>' type=kotlin.String origin=null
PROPERTY name:okext visibility:public modality:FINAL [val]
FUN name:<get-okext> visibility:public modality:FINAL <> () returnType:kotlin.String
FUN name:<get-okext> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.String
correspondingProperty: PROPERTY name:okext visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-okext> (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="OK"
@@ -53,3 +54,4 @@ FILE fqName:<root> fileName:/references.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test5 (): kotlin.String declared in <root>'
CALL 'public final fun <get-okext> (): kotlin.String declared in <root>' type=kotlin.String origin=null
$receiver: GET_VAR '<this>: kotlin.String declared in <root>.test5' type=kotlin.String origin=null
@@ -19,13 +19,15 @@ FILE fqName:test fileName:/safeCallWithIncrementDecrement.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:p visibility:public modality:FINAL [var]
FUN name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int
FUN name:<get-p> visibility:public modality:FINAL <> ($receiver:test.C?) returnType:kotlin.Int
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:test.C?
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-p> (): kotlin.Int declared in test'
CONST Int type=kotlin.Int value=42
FUN name:<set-p> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
FUN name:<set-p> visibility:public modality:FINAL <> ($receiver:test.C?, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:test.C?
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
FUN name:inc visibility:public modality:FINAL <> ($receiver:kotlin.Int?) returnType:kotlin.Int? [operator]
@@ -50,6 +52,7 @@ FILE fqName:test fileName:/safeCallWithIncrementDecrement.kt
BLOCK_BODY
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int? [val]
CALL 'public final fun <get-p> (): kotlin.Int declared in test' type=kotlin.Int? origin=null
$receiver: GET_VAR 'nc: test.C? declared in test.testProperty' type=test.C? origin=null
ERROR_CALL 'Unresolved reference: R|test/p|' type=IrErrorType
GET_VAR 'val tmp_0: kotlin.Int? [val] declared in test.testProperty' type=kotlin.Int? origin=null
FUN name:testArrayAccess visibility:public modality:FINAL <> (nc:test.C?) returnType:kotlin.Unit
@@ -58,9 +61,11 @@ FILE fqName:test fileName:/safeCallWithIncrementDecrement.kt
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Int [val]
CALL 'public final fun get (index: kotlin.Int): kotlin.Int [operator] declared in test' type=kotlin.Int origin=null
$receiver: CALL 'public final fun <get-p> (): kotlin.Int declared in test' type=kotlin.Int? origin=null
$receiver: GET_VAR 'nc: test.C? declared in test.testArrayAccess' type=test.C? origin=null
index: CONST Int type=kotlin.Int value=0
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit [operator] declared in test' type=kotlin.Unit origin=null
$receiver: CALL 'public final fun <get-p> (): kotlin.Int declared in test' type=kotlin.Int? origin=null
$receiver: GET_VAR 'nc: test.C? declared in test.testArrayAccess' type=test.C? origin=null
index: CONST Int type=kotlin.Int value=0
value: CALL 'public final fun inc (): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val tmp_1: kotlin.Int [val] declared in test.testArrayAccess' type=kotlin.Int origin=null
@@ -93,6 +93,7 @@ FILE fqName:<root> fileName:/safeCalls.kt
RETURN type=kotlin.Nothing from='public final fun test5 (s: kotlin.String?): kotlin.Int? declared in <root>'
CALL 'public open fun extLength (): kotlin.Int declared in <root>.IHost' type=kotlin.Int? origin=null
$this: GET_VAR '<this>: <root>.IHost declared in <root>.test5' type=<root>.IHost origin=null
$receiver: GET_VAR 's: kotlin.String? declared in <root>.test5' type=kotlin.String? origin=null
FUN name:foo visibility:public modality:FINAL <> ($receiver:kotlin.Int) returnType:kotlin.Int
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
BLOCK_BODY
@@ -11,8 +11,9 @@ FILE fqName:<root> fileName:/typeParameterClassLiteral.kt
RETURN type=kotlin.Nothing from='public final fun classRefExtFun <T> (): kotlin.reflect.KClass<T of <root>.classRefExtFun> [inline] declared in <root>'
CLASS_REFERENCE 'TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<T of <root>.classRefExtFun>
PROPERTY name:classRefExtVal visibility:public modality:FINAL [val]
FUN name:<get-classRefExtVal> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KClass<T of <uninitialized parent>>
FUN name:<get-classRefExtVal> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.reflect.KClass<T of <uninitialized parent>>
correspondingProperty: PROPERTY name:classRefExtVal visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-classRefExtVal> (): kotlin.reflect.KClass<T of <uninitialized parent>> declared in <root>'
CLASS_REFERENCE 'TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<T of <uninitialized parent>>
@@ -36,9 +37,10 @@ FILE fqName:<root> fileName:/typeParameterClassLiteral.kt
RETURN type=kotlin.Nothing from='public final fun classRefGenericMemberExtFun <TF> (): kotlin.reflect.KClass<TF of <root>.Host.classRefGenericMemberExtFun> [inline] declared in <root>.Host'
CLASS_REFERENCE 'TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<TF of <root>.Host.classRefGenericMemberExtFun>
PROPERTY name:classRefGenericMemberExtVal visibility:public modality:FINAL [val]
FUN name:<get-classRefGenericMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host) returnType:kotlin.reflect.KClass<TV of <uninitialized parent>>
FUN name:<get-classRefGenericMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host, $receiver:TV of <uninitialized parent>) returnType:kotlin.reflect.KClass<TV of <uninitialized parent>>
correspondingProperty: PROPERTY name:classRefGenericMemberExtVal visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
$receiver: VALUE_PARAMETER name:<this> type:TV of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-classRefGenericMemberExtVal> (): kotlin.reflect.KClass<TV of <uninitialized parent>> declared in <root>.Host'
CLASS_REFERENCE 'TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<TV of <uninitialized parent>>
@@ -35,9 +35,10 @@ FILE fqName:<root> fileName:/useImportedMember.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:BaseClass modality:OPEN visibility:public superTypes:[kotlin.Any]'
PROPERTY name:fromClass visibility:public modality:FINAL [val]
FUN name:<get-fromClass> visibility:public modality:FINAL <> ($this:<root>.BaseClass) returnType:T of <uninitialized parent>
FUN name:<get-fromClass> visibility:public modality:FINAL <> ($this:<root>.BaseClass, $receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
correspondingProperty: PROPERTY name:fromClass visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.BaseClass
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-fromClass> (): T of <uninitialized parent> declared in <root>.BaseClass'
ERROR_CALL 'Unresolved reference: this@R|/BaseClass.fromClass|' type=T of <uninitialized parent>
@@ -98,9 +99,10 @@ FILE fqName:<root> fileName:/useImportedMember.kt
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<set-p>' type=<root>.C origin=null
value: GET_VAR '<set-?>: kotlin.Int declared in <root>.C.<set-p>' type=kotlin.Int origin=null
PROPERTY name:ext visibility:public modality:FINAL [val]
FUN name:<get-ext> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
FUN name:<get-ext> visibility:public modality:FINAL <> ($this:<root>.C, $receiver:kotlin.Int) returnType:kotlin.Int
correspondingProperty: PROPERTY name:ext visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-ext> (): kotlin.Int declared in <root>.C'
CONST Int type=kotlin.Int value=6
@@ -112,9 +114,10 @@ FILE fqName:<root> fileName:/useImportedMember.kt
RETURN type=kotlin.Nothing from='public final fun g1 <T> (t: T of <root>.C.g1): T of <root>.C.g1 declared in <root>.C'
GET_VAR 't: T of <root>.C.g1 declared in <root>.C.g1' type=T of <root>.C.g1 origin=null
PROPERTY name:g2 visibility:public modality:FINAL [val]
FUN name:<get-g2> visibility:public modality:FINAL <> ($this:<root>.C) returnType:T of <uninitialized parent>
FUN name:<get-g2> visibility:public modality:FINAL <> ($this:<root>.C, $receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
correspondingProperty: PROPERTY name:g2 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.C
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-g2> (): T of <uninitialized parent> declared in <root>.C'
ERROR_CALL 'Unresolved reference: this@R|/C.g2|' type=T of <uninitialized parent>
@@ -176,6 +179,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
$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: CALL 'public final fun f (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=null
$this: CONST Boolean type=kotlin.Boolean value=true
$receiver: CONST Boolean type=kotlin.Boolean value=true
arg1: CONST Int type=kotlin.Int value=3
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="3"
@@ -206,6 +210,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
$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: CALL 'public final fun <get-ext> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=5
$receiver: CONST Int type=kotlin.Int value=5
arg1: CONST Int type=kotlin.Int value=6
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="6"
@@ -226,6 +231,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
$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: CALL 'public final fun <get-g2> (): T of <uninitialized parent> declared in <root>.C' type=kotlin.String origin=null
$this: CONST String type=kotlin.String value="8"
$receiver: CONST String type=kotlin.String value="8"
arg1: CONST String type=kotlin.String value="8"
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="8"
@@ -236,6 +242,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
arg0: CALL 'public open fun fromInterface <T> (): T of <root>.I.fromInterface declared in <root>.I' type=kotlin.Int origin=null
<T>: kotlin.Int
$this: CONST Int type=kotlin.Int value=9
$receiver: CONST Int type=kotlin.Int value=9
arg1: CONST Int type=kotlin.Int value=9
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="9"
@@ -245,6 +252,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
$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: CALL 'public final fun <get-fromClass> (): T of <uninitialized parent> declared in <root>.BaseClass' type=kotlin.String origin=null
$this: CONST String type=kotlin.String value="10"
$receiver: CONST String type=kotlin.String value="10"
arg1: CONST String type=kotlin.String value="10"
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="10"
@@ -1,7 +1,8 @@
FILE fqName:<root> fileName:/variableAsFunctionCallWithGenerics.kt
PROPERTY name:gk visibility:public modality:FINAL [val]
FUN name:<get-gk> visibility:public modality:FINAL <> () returnType:kotlin.Function0<T of <uninitialized parent>>
FUN name:<get-gk> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Function0<T of <uninitialized parent>>
correspondingProperty: PROPERTY name:gk visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-gk> (): kotlin.Function0<T of <uninitialized parent>> declared in <root>'
FUN_EXPR type=kotlin.Function0<T of <uninitialized parent>> origin=LAMBDA
@@ -15,9 +16,11 @@ FILE fqName:<root> fileName:/variableAsFunctionCallWithGenerics.kt
RETURN type=kotlin.Nothing from='public final fun testGeneric1 (x: kotlin.String): T of <uninitialized parent> declared in <root>'
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=T of <uninitialized parent> origin=INVOKE
$this: CALL 'public final fun <get-gk> (): kotlin.Function0<T of <uninitialized parent>> declared in <root>' type=kotlin.Function0<kotlin.String> origin=null
$receiver: GET_VAR 'x: kotlin.String declared in <root>.testGeneric1' type=kotlin.String origin=null
PROPERTY name:kt26531Val visibility:public modality:FINAL [val]
FUN name:<get-kt26531Val> visibility:public modality:FINAL <> () returnType:kotlin.Function0<T of <uninitialized parent>>
FUN name:<get-kt26531Val> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Function0<T of <uninitialized parent>>
correspondingProperty: PROPERTY name:kt26531Val visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-kt26531Val> (): kotlin.Function0<T of <uninitialized parent>> declared in <root>'
FUN_EXPR type=kotlin.Function0<T of <uninitialized parent>> origin=LAMBDA
@@ -30,3 +33,4 @@ FILE fqName:<root> fileName:/variableAsFunctionCallWithGenerics.kt
RETURN type=kotlin.Nothing from='public final fun kt26531 (): T of <uninitialized parent> declared in <root>'
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=T of <uninitialized parent> origin=INVOKE
$this: CALL 'public final fun <get-kt26531Val> (): kotlin.Function0<T of <uninitialized parent>> declared in <root>' type=kotlin.Function0<kotlin.Int> origin=null
$receiver: CONST Int type=kotlin.Int value=7
@@ -40,9 +40,10 @@ FILE fqName:<root> fileName:/multipleImplicitReceivers.kt
CLASS INTERFACE name:IFoo modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IFoo
PROPERTY name:foo visibility:public modality:OPEN [val]
FUN name:<get-foo> visibility:public modality:OPEN <> ($this:<root>.IFoo) returnType:<root>.B
FUN name:<get-foo> visibility:public modality:OPEN <> ($this:<root>.IFoo, $receiver:<root>.A) returnType:<root>.B
correspondingProperty: PROPERTY name:foo visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.IFoo
$receiver: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-foo> (): <root>.B declared in <root>.IFoo'
GET_OBJECT 'CLASS OBJECT name:B modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.B
@@ -113,3 +114,6 @@ FILE fqName:<root> fileName:/multipleImplicitReceivers.kt
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.test.<anonymous>.<anonymous>'
CALL 'public open fun invoke (): kotlin.Int [operator] declared in <root>.IInvoke' type=kotlin.Int origin=null
$this: GET_VAR '<this>: <root>.IInvoke declared in special.<anonymous>' type=<root>.IInvoke origin=null
$receiver: CALL 'public open fun <get-foo> (): <root>.B declared in <root>.IFoo' type=<root>.B origin=null
$this: GET_VAR '<this>: <root>.IFoo declared in special.<anonymous>' type=<root>.IFoo origin=null
$receiver: GET_VAR '<this>: <root>.A declared in special.<anonymous>' type=<root>.A origin=null
@@ -41,13 +41,15 @@ FILE fqName:<root> fileName:/integerCoercionToT.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:value visibility:public modality:FINAL [var]
FUN name:<get-value> visibility:public modality:FINAL <> () returnType:T_INT of <uninitialized parent>
FUN name:<get-value> visibility:public modality:FINAL <> ($receiver:<root>.CInt32VarX<T_INT of <uninitialized parent>>) returnType:T_INT of <uninitialized parent>
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.CInt32VarX<T_INT of <uninitialized parent>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-value> (): T_INT of <uninitialized parent> declared in <root>'
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin' type=kotlin.Nothing origin=null
FUN name:<set-value> visibility:public modality:FINAL <> (value:T_INT of <uninitialized parent>) returnType:kotlin.Unit
FUN name:<set-value> visibility:public modality:FINAL <> ($receiver:<root>.CInt32VarX<T_INT of <uninitialized parent>>, value:T_INT of <uninitialized parent>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.CInt32VarX<T_INT of <uninitialized parent>>
VALUE_PARAMETER name:value index:0 type:T_INT of <uninitialized parent>
BLOCK_BODY
CLASS CLASS name:IdType modality:FINAL visibility:public superTypes:[<root>.CPointed]
@@ -31,12 +31,14 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
VALUE_PARAMETER name:<set-?> index:0 type:T of <root>.Base
PROPERTY name:exn visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-exn> visibility:public modality:ABSTRACT <> ($this:<root>.Base<T of <root>.Base>) returnType:T of <root>.Base
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-exn> visibility:public modality:ABSTRACT <> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <uninitialized parent>) returnType:T of <root>.Base
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-exn> visibility:public modality:ABSTRACT <> ($this:<root>.Base<T of <root>.Base>, <set-?>:T of <root>.Base) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-exn> visibility:public modality:ABSTRACT <> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <uninitialized parent>, <set-?>:T of <root>.Base) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
VALUE_PARAMETER name:<set-?> index:0 type:T of <root>.Base
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -37,16 +37,18 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
receiver: GET_VAR '<this>: <root>.Derived1<T of <root>.Derived1> declared in <root>.Derived1.<set-bar>' type=<root>.Derived1<T of <root>.Derived1> origin=null
value: GET_VAR '<set-?>: T of <root>.Derived1 declared in <root>.Derived1.<set-bar>' type=T of <root>.Derived1 origin=null
PROPERTY name:exn visibility:public modality:FINAL [var]
FUN name:<get-exn> visibility:public modality:FINAL <> ($this:<root>.Derived1<T of <root>.Derived1>) returnType:T of <root>.Derived1
FUN name:<get-exn> visibility:public modality:FINAL <> ($this:<root>.Derived1<T of <root>.Derived1>, $receiver:Z of <uninitialized parent>) returnType:T of <root>.Derived1
correspondingProperty: PROPERTY name:exn visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-exn> (): T of <root>.Derived1 declared in <root>.Derived1'
CALL 'public final fun <get-x> (): T of <root>.Derived1 declared in <root>.Base' type=T of <root>.Derived1 origin=null
$this: GET_VAR '<this>: <root>.Derived1<T of <root>.Derived1> declared in <root>.Derived1.<get-exn>' type=<root>.Derived1<T of <root>.Derived1> origin=null
FUN name:<set-exn> visibility:public modality:FINAL <> ($this:<root>.Derived1<T of <root>.Derived1>, value:T of <root>.Derived1) returnType:kotlin.Unit
FUN name:<set-exn> visibility:public modality:FINAL <> ($this:<root>.Derived1<T of <root>.Derived1>, $receiver:Z of <uninitialized parent>, value:T of <root>.Derived1) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:exn visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
VALUE_PARAMETER name:value index:0 type:T of <root>.Derived1
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:x visibility:public modality:FINAL [fake_override,val]
@@ -1,7 +1,8 @@
FILE fqName:<root> fileName:/jdkClassSyntheticProperty.kt
PROPERTY name:test visibility:public modality:FINAL [val]
FUN name:<get-test> visibility:public modality:FINAL <> () returnType:kotlin.Array<out java.lang.reflect.Field?>?
FUN name:<get-test> visibility:public modality:FINAL <> ($receiver:java.lang.Class<*>) returnType:kotlin.Array<out java.lang.reflect.Field?>?
correspondingProperty: PROPERTY name:test visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:java.lang.Class<*>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test> (): kotlin.Array<out java.lang.reflect.Field?>? declared in <root>'
CALL 'public open fun <get-declaredFields> (): kotlin.Array<out java.lang.reflect.Field?>? declared in java.lang.Class' type=kotlin.Array<out java.lang.reflect.Field?>? origin=null
@@ -40,14 +40,16 @@ FILE fqName:<root> fileName:/genericPropertyReferenceType.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:y visibility:public modality:FINAL [var]
FUN name:<get-y> visibility:public modality:FINAL <> () returnType:T of <uninitialized parent>
FUN name:<get-y> visibility:public modality:FINAL <> ($receiver:<root>.C<T of <uninitialized parent>>) returnType:T of <uninitialized parent>
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.C<T of <uninitialized parent>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-y> (): T of <uninitialized parent> declared in <root>'
CALL 'public final fun <get-x> (): T of <uninitialized parent> declared in <root>.C' type=T of <uninitialized parent> origin=null
$this: ERROR_CALL 'Unresolved reference: this@R|/y|' type=<root>.C<T of <uninitialized parent>>
FUN name:<set-y> visibility:public modality:FINAL <> (v:T of <uninitialized parent>) returnType:kotlin.Unit
FUN name:<set-y> visibility:public modality:FINAL <> ($receiver:<root>.C<T of <uninitialized parent>>, v:T of <uninitialized parent>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.C<T of <uninitialized parent>>
VALUE_PARAMETER name:v index:0 type:T of <uninitialized parent>
BLOCK_BODY
ERROR_CALL 'Unresolved reference: R|FakeOverride</C.x: R|T|>|' type=IrErrorType